我已经使用Wayfinder菜单构建额外的MODx Evo,现在我正尝试将它与MODx Revo一起用于新网站。除了我还没有看到让第3级与第2级不同的方法之外,它的效果很好。请参阅Wayfinder当前输出菜单的方式(为简洁起见,在此处简化):
<ul class="nav nav-pills nav-main" id="mainMenu">
<li class="dropdown">
<a class="dropdown-toggle notransition" href="index.php?id=200">
Help
<i class="icon-angle-down"></i>
</a>
<ul class="dropdown-menu pull-right " style="display: none;">
<li>
<a href="index.php?id=31">
FAQs
</a>
</li>
<li class="dropdown-submenu pull-left">
<a href="index.php?id=54">
Policies
</a>
<ul class="dropdown-menu pull-right" style="display: none;">
<li>
<a href="index.php?id=490">
Privacy Policy
</a>
</li>
<li>
<a href="index.php?id=489">
Terms and Conditions
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
我需要'政策'子菜单,其中包含'隐私政策'等,向左拉,而不是向右拉 - 在Wayfinder InnerTpl中定义:
<ul class="dropdown-menu pull-right" style="display: none;">[[+wf.wrapper]]</ul>
那么,Wayfinder是否有可能使第3级与第2级不同?
我已经浏览了几天的文档和论坛无济于事,并希望这个令人惊叹的SO社区有一些见解。提前谢谢!
答案 0 :(得分:1)
我认为您将不得不使用CSS执行此操作,您可以将&amp; levelClass添加到您的wayfinder调用[docs说“CSS类表示每个输出行级别。级别编号将添加到指定的类( level1,level2,level3等,如果你指定'level')。]
当你看到类似的内容时,你可以为你的第三级项目编写一些css:
<li class="dropdown-submenu pull-left level2">
你的css可能会像:
li.dropdown-submenu.pull-left.level2 > ul {
/* css for pulling it right */
}
不幸的是,如果你将[[+ wf.classnames]]添加到外包装器中的UL标签,&amp; levelClass什么都不做,所以你必须从侧面来看它。
OR
可以编写内部包装器以使用片段来决定要添加的类:
<ul class="dropdown-menu [[!pullLeftOrRight? &id=`[[+wf.docid]]`]]">
[[+wf.wrapper]]
</ul>
然后在您的代码段中使用docid来确定菜单树中subnav的位置。 [希望docid可以在outerTpl中找到 - 我不确定]
更新
阅读完您的评论&amp;文档再次,我想我有一个可能有用的想法 - 检查&amp; categoryFoldersTpl属性,使用你的右侧类和&amp;设置你的tpl。对于您的第3级下拉菜单,请按照文档中的建议仅在第三级资源上设置rel =“category”。 [这对任何想要不同级别的不同子菜单的人都没有帮助,但可能会让你脱离你的束缚]