WifinderのTplについて質問です

質問全般・改善要望
返信する
puupuu
メンバー
メンバー
記事: 25
登録日時: 2012年1月19日(木) 20:03

WifinderのTplについて質問です

投稿記事 by puupuu »

&outerTpl=`archiveOuter` // リストの入れ子テンプレート(チャンク)を指定します。
&rowTpl=`archiveCount`
&innerTpl=`archiveOuter` // 2階層目以降のツリー外枠用
&innerRowTpl=`archiveCount` // 2階層目以降のリソース用



-----
ご利用のサーバ: Xserver
MODXのバージョン: 1.0.7J-r1
PHPのバージョン:
MySQLのバージョン:
ブラウザ:
-----

Wayfinderで以下のようなリストを作成させたいのですが

>2012年
 >12月(5)
 >11月(4)
 >10月(15)
>2011年
 >12月(5)
 >11月(2)
 >10月(1)
 >9月(1)

以下の様なスニペットコールを書くと

コード: 全て選択

[[Wayfinder?
&startId=`**`
&level=`2` 
&outerTpl=`***`
&rowTpl=`1階層目用`
&innerRowTpl=`2階層目用`
]]
2階層目が表示されなくなります。

>2012年
>2011年

&rowTplを外して、以下の様に記述すると全ての階層が表示されるのですが、
1階層目のチャンクが指定できずスタイルの調整が出来なくなってしまいます。

コード: 全て選択

[[Wayfinder?
&startId=`**`
&level=`2` 
&outerTpl=`***`
&innerRowTpl=`2階層目用`
]]
&innerRowTplを外して、以下の様に記述しても、2階層目が表示されなくなります。

コード: 全て選択

[[Wayfinder?
&startId=`**`
&level=`2` 
&outerTpl=`***`
&rowTpl=`1~2階層目用`
]]
1階層目と2階層目に別々のTplを指定して表示させたいのですが、記述方法など誤りがありましたらご指導をよろしくお願いします。
puupuu
メンバー
メンバー
記事: 25
登録日時: 2012年1月19日(木) 20:03

Re: WifinderのTplについて質問です

投稿記事 by puupuu »

すみません、説明とコードの内容に記述ミスがあったので修正しました。

アドバイスがあればよろしくお願いします。
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: WifinderのTplについて質問です

投稿記事 by aki »

テンプレートの指定をせずに出力した場合(startIdとlevelの指定のみにする)は、全部出てきますか?
それぞれテンプレートとして指定しているチャンクにどのように書いているかも教えてください。

なんとなくですが、rowTplに[+wf.wrapper+]が足りないのかな?という気がします。
puupuu
メンバー
メンバー
記事: 25
登録日時: 2012年1月19日(木) 20:03

Re: WifinderのTplについて質問です

投稿記事 by puupuu »

akiさま
お返事ありがとうございます。
チャンクコードを記述してみました。
ご指摘のとおり、rowTplに[+wf.wrapper+]は記述していませんでした。
startIdとlevelの指定のみですと全部表示されます。

コード: 全て選択

[[Wayfinder?
&showSubDocCount=`1`
&startId=`1095`
&level=`4`
&textOfLinks=`longtitle`
&sortBy=`pagetitle` 
&sortOrder=`DESC`
&hideSubMenus=`true`

&outerTpl=`@CODE:<ul>[+wf.wrapper+]</ul>`
&rowTpl=`@CODE:<li>[+wf.title+]</li>`
&innerTpl=`@CODE:<ul>[+wf.wrapper+]</ul>`
&innerRowTpl=`@CODE:<li><a href="[~[+wf.link+]~]">[+wf.linktext+]</a>([+wf.subitemcount+])</li>`
]]
puupuu
メンバー
メンバー
記事: 25
登録日時: 2012年1月19日(木) 20:03

Re: WifinderのTplについて質問です

投稿記事 by puupuu »

akaさま
rowTplに[+wf.wrapper+]を追加し、hideSubMenus=`true`に設定し直したら
無事表示されました!
ありがとうございます。

[+wf.wrapper+]

[[Wayfinder?
&showSubDocCount=`1`
&startId=`1095`
&level=`4`
&textOfLinks=`longtitle`
&sortBy=`pagetitle`
&sortOrder=`DESC`

&outerTpl=`@CODE:<ul>[+wf.wrapper+]</ul>`
&rowTpl=`@CODE:<li>[+wf.title+][+wf.wrapper+]</li>`
&innerTpl=`@CODE:<ul>[+wf.wrapper+]</ul>`
&innerRowTpl=`@CODE:<li><a href="[~[+wf.link+]~]">[+wf.linktext+]</a>([+wf.subitemcount+])</li>`
]]
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: WifinderのTplについて質問です

投稿記事 by aki »

表示されたようで、よかったです。
[+wf.wrapper+]の扱いがちょっとわかりにくいかもしれないですね。

http://www.modx.liolion.net/resource/Wayfinder.html
こちらのサイト様の下の方に「innerRowTpl」の解説があり、そこに「テンプレート同士の関係」が書かれています。

[+wf.wrapper+]は、「現在のテンプレートが内包すべきテンプレートを挿入」と説明されているのですが、
今回の場合、
・outerTpl は、rowTpl を内包して繰り返す
・さらに rowTpl は、innerTpl と innerRowTpl を内包して繰り返すべし
ということなので、rowTpl にも[+wf.wrapper+]の指定が必要だったということですね。
puupuu
メンバー
メンバー
記事: 25
登録日時: 2012年1月19日(木) 20:03

Re: WifinderのTplについて質問です

投稿記事 by puupuu »

わかりやすい説明をありがとうございます。
とても参考になります!

Dittoにくらべて、Wayfinderは若干癖があるため、
表示に苦戦しておりましたが、なんとなく仕組みが理解できてきたかなぁと思います笑
返信する