TopicPathの&tplTopicにプレースホルダ指定できるのか?

質問全般・改善要望
返信する
shobu
メンバー
メンバー
記事: 91
登録日時: 2011年5月26日(木) 16:54

TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by shobu »

こんにちは。
r2が出たようでもう少し早く気づけば良かったのですが、もしかするとこちらの環境だけのことかもしれません。

Breadcrumbs を使い続けているのですが、後々のため1.0.6-r1で TopicPathもチェックしてみました。

解説ページ( http://modx.jp/docs/extras/snippets/topicpath.html )にある様にパラメータにプレースホルダを含めた場合

例: [[TopicPath?tplTopic=`<li>[+topic+]</li>`]]

まず、[+topic+]が解釈されるが当然中身は空なので <li></li> がTopicPath へ渡され、テキストの中身がなくなってしまわないでしょうか(こちらの環境だとこうなります)。
スニペット側にテンプレートの内容としてプレースホルダを渡す目的で前述のような書き方ができるようになっているのでしょうか?
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by yama »

画像
[[TopicPath?tplTopic=`<li>[+topic+]</li>`]]と記述して試してみましたが、出力されました。中身が空になるのは、他のケースで最近報告があったのでr2では修正しています。それとは違う話かもしれませんが、、
ある条件で出力されないケースはあるかもしれません。それと、パラメータ自体がちょっと分かりにくい気もします。
shobu
メンバー
メンバー
記事: 91
登録日時: 2011年5月26日(木) 16:54

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by shobu »

返信ありがとうございます。

テンプレートとして別のhtmlファイルをincludeさせているので、そこの違いかと、テンプレートなしの状態で

[[TopicPath?tplTopic=`<li>[+topic+]</li>`]]

と入れてみましたが駄目でした。。。
デモサイトの1.0.6Jでは問題ないようですが、r1ではページのキャッシュ、[[]], [!!]の違いに関わらずうまくいっていません。
r2では問題ないとなるとr1固有の問題でしょうかね。。。
特にTopicPathを使いたいという訳でなく念のためご報告しただけなので、r2で直っているようならば解決ということで良いかと思います。
(パースの解釈に何かある可能性もあるか・・・)

以上よろしくお願いいたします。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by yama »

http://120525113604-32026.evo.demo.modx.jp/manager/
http://120525113604-32026.evo.demo.modx ... /ajax.html
上記デモサイトで確認してみましたが、想定している状態と違うでしょうか。
shobu
メンバー
メンバー
記事: 91
登録日時: 2011年5月26日(木) 16:54

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by shobu »

お手数おかけしています。
r1で大丈夫となると他の原因が、、、ということでデモサイトのテンプレなどを眺めてみて、現象の引き金が分かりました。
[[TopicPath?tplTopic=`<li>[+topic+]</li>`]] をチャンクに入れると駄目なようです。

テンプレートをincludeで読み込ませているので、後々書き換えるときにCMS側からのみやりやすいように書き換えが出そうな所はチャンクにしています。パンくずが入る領域もそうしているのですが、これをテンプレートのファイルに直接記述した場合は大丈夫なようです。

要はチャンクとプレースホルダーの展開のタイミングの問題ですよね。。。直感的には今のようにチャンクの中での[+topic+]が空っぽになるのが当たり前な気がするので、これはこのままで良いような気がします(何か別の不具合がなければ)。
チョット気になったのはDittoのようなプレースホルダーに値を一時保存できるスニペットを使用して、他のスニペットの引数に値を渡したい場合、どうさがどうなるのか?という点です。
例としては使用法は正しくないですが、イメージとしては ?tplTopic=`<li>[+topic+]</li>` に [+topic+] という文字列でなく、[+topic+] として保存されている値で置き換えて渡したい場合、展開がどうなるのか?ということです。上手く伝わるでしょうか。。。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by yama »

なるほど、、たぶん http://forum.modx.jp/viewtopic.php?f=32&t=840 こちらと原因が同じな気がします。だとしたらr2では解決してそうですが、あとで試してみますね
shobu
メンバー
メンバー
記事: 91
登録日時: 2011年5月26日(木) 16:54

Re: TopicPathの&tplTopicにプレースホルダ指定できるのか?

投稿記事 by shobu »

デモサイトでチャンクに入れたりして試してみましたが、デモサイトは問題ないようです!

私の環境だとページのキャッシュ制御無しの前提で

・チャンクに入れると駄目
・テンプレート無しのページの内容に直接記述しても駄目
・テンプレートファイルに直接書き込むとOK.

という動作になりました。うむむ、デモサイトとどこが違うのだろうか・・・。
以前からの感覚だと表示されないという動作で納得なのですが、今のバージョンだとそうではないのですよね。
とりあえずTopicPathについては困らないのですが、直ぐにr2で再検証という訳にもいかず(時間的にまた1から再検証しきれないので)、こちらでも何か分かることがあればお知らせするようにします。
返信する