MODxでCMSの恩恵を賜りつつ、validを保ち、かつWEB標準化を目指そう
Welcome !! Now 2008.11.22 08:30 (JST)
Wayfinder による簡単なアウトプットサンプルです。
テンプレートとパラメータで指定したCSSクラスが、実際どのような順番で適用されるのかを実験しました。
「linktest03」は、「ウェブリンク」です(リソース解説にリダイレクトします)。
また各ページのパンくずリストは「Wayfinder」で出力しています
[!Wayfinder? &startId=`286` &config=`wayfindertest`!]
上記アウトプットのためのコンフィギュレーションです(wayfindertest.config.php)。
チャンクを作ってそれを指定しても良いはずですが、そうするとチャンクが増えるので、私はこの方法で指定しています。
この場合、チャンクに書くべきコードをこの1つのファイルにすべて書いてしまっているわけです。このようにすると、どこかのパラメータなどを直そうと思ったとき、管理画面をうろうろしなくてすむので、私的には便利に感じています。
Wayfinder2.0 には標準でいくつかのコンフィギュレーションファイルが同梱されていますので、参考にすると良いと思います。
尚、下記コードには、上記を出力するのに必要ないものもたくさん含まれています。テンプレートの適用順序を調べたかったので、すべてのテンプレートを適用してみました。どの階層にいるとき、どのテンプレートがそれぞれ適用されているかがわかると思います。また、クラス名もすべて指定しています。[+wf.classes+]の中で、どのように、クラス名が指定されていくかもわかると思います。
<?php
// common parameter //
$displayStart = 'true';
$ignoreHidden = 'true';
$rowIdPrefix = 'rowprefix_';
$cssTpl = 'wayfindercss';
// template parameter //
$startItemTpl = '@CODE:<h2[+wf.id+][+wf.classes+]>[+wf.linktext+]</h2>[+wf.wrapper+]';
$parentRowHereTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私は親です。カレントドキュメントです。" [+wf.attributes+]>[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$innerHereTpl = '@CODE:<li[+wf.classes+] title="私はinnerHereTplです">[+wf.linktext+][+wf.wrapper+]</li>';
$hereTpl = '@CODE:<li[+wf.classes+] title="私はカレントドキュメントです">[+wf.linktext+][+wf.wrapper+]</li>';
$activeParentRowTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私はactiveParentRowTplです">[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$categoryFoldersTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私はcategoryFoldersTplです">[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$parentRowTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私は親ドキュメントです。子供がいます。">[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$innerRowTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私はinnerTplの中の子ドキュメントです">[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$rowTpl = '@CODE:<li[+wf.classes+]><a href="[+wf.link+]" title="私は子ドキュメントです">[+wf.linktext+]</a>[+wf.wrapper+]</li>';
$innerTpl = '@CODE:<ul[+wf.classes+] id="inner">[+wf.wrapper+]</ul>';
$outerTpl = '@CODE:<ul[+wf.classes+] id="outer">[+wf.wrapper+]</ul>';
// class parameger //
$outerClass = 'outerClass';
$rowClass = 'rowClass';
$innerClass = 'innerClass';
$levelClass = 'levelClass_';
$webLinkClass = 'webLinkClass';
$firstClass = 'firstClass';
$lastClass = 'lastClass';
$selfClass = 'selfClass';
$parentClass = 'parentClass';
?>