ページ 11

WifinderのTplについて質問です

Posted: 2013年2月27日(水) 18:20
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を指定して表示させたいのですが、記述方法など誤りがありましたらご指導をよろしくお願いします。

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

Posted: 2013年2月28日(木) 09:25
by puupuu
すみません、説明とコードの内容に記述ミスがあったので修正しました。

アドバイスがあればよろしくお願いします。

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

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

なんとなくですが、rowTplに[+wf.wrapper+]が足りないのかな?という気がします。

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

Posted: 2013年2月28日(木) 13:10
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>`
]]

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

Posted: 2013年2月28日(木) 13:17
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>`
]]

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

Posted: 2013年2月28日(木) 13:26
by aki
表示されたようで、よかったです。
[+wf.wrapper+]の扱いがちょっとわかりにくいかもしれないですね。

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

[+wf.wrapper+]は、「現在のテンプレートが内包すべきテンプレートを挿入」と説明されているのですが、
今回の場合、
・outerTpl は、rowTpl を内包して繰り返す
・さらに rowTpl は、innerTpl と innerRowTpl を内包して繰り返すべし
ということなので、rowTpl にも[+wf.wrapper+]の指定が必要だったということですね。

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

Posted: 2013年2月28日(木) 13:42
by puupuu
わかりやすい説明をありがとうございます。
とても参考になります!

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