PHxはプラグインで動作タイミングがスニペットコール前のため、値の入っていないプレイスホルダーとかをブランクにしてくれやがります。
コメントアウトの方法はこちら。
[modxでPHxをインストールするとDittoでページネーションできなくなる件]
http://blog.rainyday.jp/modx_list/modx/modxbug.html
どうおかしくなるかというと、デフォルトテンプレートだと、[ +dr.title+ ]とか、明らかにプレイスホルダーの残骸が出力されてしまう。
と毎度の書き出しです。
原因:
AjaxSearchと一緒でPHxが導入されていると、directResize内にあるPHxではなく、追加で導入したPHxのクラスを使う。
directResizeは意図的に空欄となったプレイスホルダーをブランクに置き換えるPHxのロジックを利用しているため、上記でコメントアウトしたが為に、directResizeでのブランクプレイスホルダーの処理がおかしくなった。
対処:
だったら、AjaxSearchと一緒の対応だ。と判断。
以下の箇所を変更。
/assets/snippets/directresize/phx.parser.class.inc.phpのクラス名とコンストラクタを変更。
11行目:
class PHxParser {
を
class PHxParserAS {
に。
17行目:
function PHxParser($debug=0,$maxpass=50) {
を
function PHxParserAS($debug=0,$maxpass=50) {
に。
/assets/snippets/ajaxSearch/chunkie.class.incのPHxParserを読み込んでいる箇所を修正
15行目:
if (!class_exists("PHxParser")) include_once(strtr(realpath(dirname(__FILE__))."/phx.parser.class.inc.php", '\\', '/'));
を
if (!class_exists("PHxParserAS")) include_once(strtr(realpath(dirname(__FILE__))."/phx.parser.class.inc.php", '\\', '/'));
に。
17行目:
$this->phx = new PHxParser();
を
$this->phx = new PHxParserAS();
に。
PHxParserASと、修正していないPhxのクラス名にしておけば、複数回は読み込まれないだろうという判断です。
前回の経緯:
PHxを導入すると、JotやらDittoやらおかしくなる