我已经使用了在MODx Evo中构建额外的Wayfinder菜单,现在正在尝试将它与MODx Revo一起用于一个新的网站。它工作得很好,除了我还看不到让第三层和第二层不同的方法。查看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中有一个不同于第二级的第三级?
我已经浏览了几天的文档和论坛,但都无济于事,希望令人惊叹的SO社区能有一些见解。提前感谢!
发布于 2013-09-03 05:39:41
我认为你必须用CSS来做这件事,你可以在你的wayfinder调用文档中添加& level类,上面写着“CSS class表示每个输出行的级别。级别编号将被添加到指定的类中(如果你指定了‘level’,就会添加level1,level2,level3等)。”
这样,当您可以为您的第三级项目编写一些css时,当您看到如下内容时:
<li class="dropdown-submenu pull-left level2">你的css可能是这样的:
li.dropdown-submenu.pull-left.level2 > ul {
/* css for pulling it right */
}不幸的是,如果您将[+wf.classnames]添加到外部包装器中的UL标记中,那么&levelClass不会做任何事情,因此您必须从另一个角度来处理它。
或
您的内部包装器可以编写为使用代码片段来决定要添加的类:
<ul class="dropdown-menu [[!pullLeftOrRight? &id=`[[+wf.docid]]`]]">
[[+wf.wrapper]]
</ul>然后,在您的代码片段中,使用docid来确定subnav在菜单树中的位置。希望docid在outerTpl中可用-我不确定
更新
在再次阅读了您的评论和文档后,我想我有了一个可行的想法-检查&categoryFoldersTpl属性,使用您的pull right类设置您的第三方逻辑&对于您的第三级下拉列表,按照文档中的建议仅在第三级资源上设置rel="category“。这对那些想要不同级别的不同子菜单的人没有帮助,但可能会让您摆脱束缚
https://stackoverflow.com/questions/18580518
复制相似问题