Reflect経由でDitto付属PHxが動作しない

質問全般・改善要望
返信する
kazh
メンバー
メンバー
記事: 12
登録日時: 2010年2月26日(金) 20:18

Reflect経由でDitto付属PHxが動作しない

投稿記事 by kazh »

[サーバ]
 ホスト&契約タイプ:さくらスタンダード
[modx]
 バージョン:1.0.2J
 アドオン:Reflect2.1.0 Ditto2.1.0 (PHxは追加インストールはしていません)

Reflect経由でのDitto付属PHxの動作について質問です。

DiitoのプレイスホルダでのPHx構文は正常に動いているのですが、
Reflectを通すと、私の環境ではPHx構文が一切働きません(無効なプレイスホルダ名として空になります)。
phxパラメータはデフォルトで1(有効)のはずですが、&phx=`1`を明示しても全く出力されません。
PHx構文を使わない通常のプレイスホルダは全て正常に出力されています。

ググりまくってみたものの、Reflect + PHxはどうも資料に乏しく
そもそものバグなのかどうかにミスがあるのか判断が付かずこちらに書き込みました。

Reflectを通したDittoの動作では、Ditto付属のPHxは動作しないのでしょうか?
一応私自身でもソースを追ってはみますが、既にご経験済みの方がいらっしゃいましたら教えてください。
kazh
メンバー
メンバー
記事: 12
登録日時: 2010年2月26日(金) 20:18

Re: Reflect経由でDitto付属PHxが動作しない

投稿記事 by kazh »

上記の件、自己解決しました。

ソースを洗ってみたところ、$phxパラメータがどこにも渡されていない事が判明。
そりゃ動くわけありませんね・・・。

スニペット最終行の

コード: 全て選択

return reflect($targetID, $showItems, $groupByYears, $resource, $dateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir);

コード: 全て選択

return reflect($targetID, $showItems, $groupByYears, $resource, $dateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir,$phx);
に。

加えて、中盤の

コード: 全て選択

if (function_exists("reflect") === FALSE) {
function reflect($templatesDocumentID, $showItems, $groupByYears, $resource, $templatesDateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir) {

コード: 全て選択

if (function_exists("reflect") === FALSE) {
function reflect($templatesDocumentID, $showItems, $groupByYears, $resource, $templatesDateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir,$phx) {
に。

これで無事、動きました。
ちなみにPHxコードが有効になるのは、アイテムテンプレートの中だけのようです。
一応、情報共有ということで。
失礼しました。
返信する