Wayfinderで多階層メニューを作る場合に下位コンテンツが有る場合だけclassを入れたい

質問全般・改善要望
返信する
monamaster
メンバー
メンバー
記事: 13
登録日時: 2010年9月10日(金) 15:34

Wayfinderで多階層メニューを作る場合に下位コンテンツが有る場合だけclassを入れたい

投稿記事 by monamaster »

いつも大変お世話になっております。
今回は、Wayfinderを使って多階層のメニューを作る場合、下位の階層があることが分かるよう、マーク(▶など)を入れたいと思い、下位のコンテンツがある場合にclass(例では「class="under")を入れたいと思いましたが、やり方が分かりません。
※古いIEとかでも使えるよう、出来るだけcssの:before要素等を使わないで行ければと思っています。

出来れば、下位の階層があるものだけ、<a href="〜">ではなく、<a>のみに出来ればと思います(一部のタブレットとかで、hrefがあると飛んでしまうので…)。

具体的には

コード: 全て選択

<ul>
<li><a href="xxx.html">xxx</a></li>     //下位コンテンツがない(フォルダーでない)ものはclassもなく通常の<a href="〜">
<li><a class="under">aaa</a>     //下位コンテンツがある(フォルダーの)ものはclassを付けて、<a>のみ
     <ul>
          <li><a href="bbb.html">bbb</a></li>
     </ul>
</li>
<li><a class="under">ccc</a>
     <ul>
          <li><a class="under">ddd</a>
               <ul>
                    <li><a href="eee.htm">eee</a>
                    <li><a href="fff.htm">fff</a>
                    <li><a href="ggg.htm">ggg</a>
               </ul>
          </li>
     </ul>
</li>
</ul>
のような構造です。

Wayfinderでこのような構造を作ることは出来るのでしょうか?

また、Wayfinderでは、リンクがurl(絶対指定)ですが、相対指定(/から始まるリンク)に変えることが出来るのでしょうか?

お手数ですが、よろしくお願いします。
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: Wayfinderで多階層メニューを作る場合に下位コンテンツが有る場合だけclassを入れたい

投稿記事 by aki »

monamasterさん、こんばんは。

Wayfinderは、かなり細かくテンプレートを設定できるので、
ご相談のようなケースでしたら、「parentRowTpl」を設定することで実現できます。
見た方が早いと思うのでデモサイトにテストページを作ってみました。

▼Wayfinderの表示テストページ
http://150914224421-28974.evo.demo.modx.jp/wf.html
▼管理画面(ユーザー名:modx / パスワード:modx)
http://150914224421-28974.evo.demo.modx.jp/manager/

Wayfinderのコールは、「表示テスト」のリソースに書いています。
テンプレートの設定は、チャンクにしたのでエレメントから見てください。

リンク先のURLを相対パスにする方法は、Wayfinderのプレースホルダ「[+wf.docid+]」を
テンプレート「rowTpl」に設定すれば実現できます。

Wayfinderは、他のスニペットに比べてものすごく細かい部分まで設定が可能なので
把握するのがちょっと大変ですが、把握してしまえばほぼ思い通りのカスタムができると思います。
こちらのMODX公式サイトの「ドキュメント」ページ(http://modx.jp/docs/)からリンクされている
Let's enjoy MODxさんなどにしっかりした解説があるので、
今回使ったテンプレートやプレースホルダ等の詳しい働きについての説明は
ぜひそちらのサイト様の解説ページを読んでみてください。
返信する