phxで、MaxiGalleryとJotのエラー

質問全般・改善要望
返信する
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

phxで、MaxiGalleryとJotのエラー

投稿記事 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 からダウンロードした最新版です。
よろしくお願いします。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: phxで、MaxiGalleryとJotのエラー

投稿記事 by yama »

http://forums.modx.com/thread/?thread=55990
5年前の話ですが、基本的には上記の問題は現時点では解決できてないと思います。上記のようにページ単位で有効無効を設定できるように処理を加えることは可能だと思うので、もしよければそのようにしてみます。
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

Re: phxで、MaxiGalleryとJotのエラー

投稿記事 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を使うので、リソース単位とかテンプレート単位で無効にできるようになると便利です。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: phxで、MaxiGalleryとJotのエラー

投稿記事 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;
}
添付ファイル
phx.parser.class.inc.zip
(5.76 KiB) ダウンロード数: 574 回
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

Re: phxで、MaxiGalleryとJotのエラー

投稿記事 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」はまだ検証していませんが、他にも気付いた点があれば報告します。
返信する