ページ 1 / 1
phxで、MaxiGalleryとJotのエラー
Posted: 2012年11月08日(木) 07:54
by yasu
[modx] バージョン:1.0.6J-r8
[サーバ] ホスト:エックスサーバー
[PHP]バージョン:5.3.3
[DB]:5.0.77
お世話になります。
MaxiGalleryとJotを利用していますが、phxの影響できちんと表示されません。
両方とも動作は問題ないのですが、フロント画面で下記のようなコードが表示されます。
phxを停止すると正常に表示されます。
グローバル設定の「Internal PHx function」は関係ないようです。
■MaxiGalleryの場合
[+maxigallery.childgalleries:isnot=``:then=`
`+] [+maxigallery.pagenumbers:isnot=``:then=` [+maxigallery.pagecount:isnot=`1`:then=`
[+maxigallery.currentpage:is=`1`:then=` « 前へ | `:else=` « 前へ | `+] `:then=` 次へ » `:else=` 次へ » `+]
バージョンは、
https://github.com/modxcms-jp/evolution-jp/downloads からダウンロードした最新版です。
よろしくお願いします。
Re: phxで、MaxiGalleryとJotのエラー
Posted: 2012年11月08日(木) 13:47
by yama
http://forums.modx.com/thread/?thread=55990
5年前の話ですが、基本的には上記の問題は現時点では解決できてないと思います。上記のようにページ単位で有効無効を設定できるように処理を加えることは可能だと思うので、もしよければそのようにしてみます。
Re: phxで、MaxiGalleryとJotのエラー
Posted: 2012年11月08日(木) 17:37
by yasu
ありがとうございます。
http://www.modx.liolion.net/resource/phx.html こちらにも紹介していたのに見落としていました。
上記を参考に自分にできる限り、いろいろ試してみましたが無効になりませんでした…
include_once $modx->config['base_path'] . 'assets/plugins/phx/phx.parser.class.inc.php';
$e = &$modx->Event;
switch($e->name) {
case 'OnParseDocument':
if (!strstr($modx->documentOutput,"donotphx")) {
$PHx = new PHxParser($phxdebug,$phxmaxpass);
$PHx->OnParseDocument();
}
break;
}
<!-- donotphx -->の挿入
すみませんが、お知恵を拝借いただきたいと思います。
よろしくお願いします。
上記のようにページ単位で有効無効を設定できるように処理を加えることは可能だと思うので、もしよければそのようにしてみます。
ちょくちょくJotを使うので、リソース単位とかテンプレート単位で無効にできるようになると便利です。
Re: phxで、MaxiGalleryとJotのエラー
Posted: 2012年11月08日(木) 21:38
by yama
パッチを作りました。添付のファイルを解凍してassets/plugins/phx/ ディレクトリに上書きしていただけますでしょうか。
次に、下記のコードをPHxのプラグイン編集画面に貼り付けて保存してみてください。
JotやMaxigalleryのテスト環境を作ってないのでテストはしていませんが、たぶん動作するのではと思います。
リソース中またはテンプレート中に[+jotなどの文字列があると自動的にPHxの処理をスキップします。この文字列はPHxプラグイン編集画面のプロパティで任意に設定できます。
コード: 全て選択
//<?php
/**
* phx
*
* (Placeholders Xtended) Adds the capability of output modifiers when using placeholders, template variables and settings tags
*
* @category plugin
* @version 2.1.6
* @author Armand "bS" Pondman (apondman@zerobarrier.nl)
* @internal @properties &phxdebug=Log events;int;0 &phxmaxpass=Max. Passes;int;50 &disable_trigger=Disable trigger strings;text;[+jot,[+maxigallery,donotphx
* @internal @events OnParseDocument
* @internal @modx_category Manager and Admin
*/
include_once $modx->config['base_path'] . 'assets/plugins/phx/phx.parser.class.inc.php';
$e = &$modx->event;
$PHx = new PHxParser($phxdebug,$phxmaxpass);
switch($e->name)
{
case 'OnParseDocument':
$PHx->OnParseDocument();
break;
}
Re: phxで、MaxiGalleryとJotのエラー
Posted: 2012年11月09日(金) 06:34
by yasu
yamaさん
早速の対応ありがとうございます。
結果としては、今回のパッチではphxは無効にならなかったようで、同じ事象がでました。
ですが!!
ちょっと気になった事があったので、「jot」を数パターン検証してみました。
結果、素人考えですが、デフォルトテンプレート周りに原因があるような気がします。
■検証結果
パージョン: 1.0.5J-r10/1.0.6J-r6/ 1.0.6J-r8
今回のパッチを当てているのはr8だけです。
[!Jot? &placeholders=`1` &output=`0` &tplForm=`jotForm` &tplComments=`jotComment-02`!]
<div style="width: 640px; margin: 10px;">
[+jot.html.form+]
</div>
<div style="width: 735px; margin: 10px;">
[+jot.html.navigation+]
[+jot.html.comments+]
[+jot.html.navigation+]
</div>
このようにチャンクに出力テンプレートを作成した場合は、正常に表示されましたが、
[!Jot? &pagination=`5`!] のように、デフォルトのテンプレートを使うようにしたらエラーになりました。
どうも「 &tplForm=``」が影響している感じです。
「 &tplForm=``」を指定しておけば、「&tplComments=``」は指定しなくても正常表示されました。
「MaxiGallery」はまだ検証していませんが、他にも気付いた点があれば報告します。