Navigation Typo3中的嵌套菜单
我想创建一个混合菜单(水平和垂直),复制我的网站结构 假设Typo3中的页面结构如下所示:Navigation Typo3中的嵌套菜单,navigation,typo3,typoscript,fluid,Navigation,Typo3,Typoscript,Fluid,我想创建一个混合菜单(水平和垂直),复制我的网站结构 假设Typo3中的页面结构如下所示: <root> -FIRST --child --child --child -SECOND --child --child --child -THIRD --child --child --child FIRST SECOND THIRD child child child child child child child child c
<root>
-FIRST
--child
--child
--child
-SECOND
--child
--child
--child
-THIRD
--child
--child
--child
FIRST SECOND THIRD
child child child
child child child
child child child
lib.menuChildren = HMENU
lib.menuChildrenl{
special = directory
special.value = {$nav.first}
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub = <li>|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
}
ACT < .NO
ACT.wrapItemAndSub = <li class="active">|</li>
CUR < .ACT
CUR.doNotLinkIt = 1
}
}
在我以前的版本中,static和我使用打字脚本为孩子们创建菜单的父页面。因为我不太清楚,每个显示的菜单都有自己的代码,看起来像这样:
<root>
-FIRST
--child
--child
--child
-SECOND
--child
--child
--child
-THIRD
--child
--child
--child
FIRST SECOND THIRD
child child child
child child child
child child child
lib.menuChildren = HMENU
lib.menuChildrenl{
special = directory
special.value = {$nav.first}
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub = <li>|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
}
ACT < .NO
ACT.wrapItemAndSub = <li class="active">|</li>
CUR < .ACT
CUR.doNotLinkIt = 1
}
}
lib.menuChildren=humenu
自由儿童{
特殊=目录
special.value={$nav.first}
1=t菜单
1 {
expAll=1
否=1
没有{
wrapItemAndSub=|
stdWrap.htmlSpecialChars=1
ATagTitle.field=标题
}
第号法案
ACT.wrapItemAndSub=|
当前法案
CUR.doNotLinkIt=1
}
}
这是渲染菜单的流体模板:
<ul class="nav nav-default">
<li>
<ul class="nav nav-stacked">
<li class="nav-caption">FIRST</li>
<f:cObject typoscriptObjectPath="lib.childrenFirst" />
</ul>
</li>
<li>
<ul class="nav nav-stacked">
<li class="nav-caption">SECOND</li>
<f:cObject typoscriptObjectPath="lib.childrenSecond" />
</ul>
</li>
<li>
<ul class="nav nav-stacked">
<li class="nav-caption">THIRD</li>
<f:cObject typoscriptObjectPath="lib.childrenThird" />
</ul>
</li>
</ul>
-
- 首先
-
- 秒
-
- 第三
为了避免硬编码的父菜单,我想动态创建整个菜单。如何做到这一点?从根部开始,在你的纸上增加一个深度(2=TMENU)。类似这样的内容(根据需要调整HTML):
lib.menuChildren=humenu
自由儿童{
特殊=目录
special.value={$root}
换行=
1=t菜单
1 {
expAll=1
否=1
没有{
wrapItemAndSub=|
stdWrap.htmlSpecialChars=1
ATagTitle.field=标题
}
第号法案
ACT.wrapItemAndSub=|
当前法案
CUR.doNotLinkIt=1
}
2 < .1
2.wrap=|
}
要使外观垂直/水平,必须使用CSS
当删除第2行中的打字错误时,除了两个小细节外,它还能正常工作。1.)父母在
导航堆叠
包装外,2.)他们没有指定类导航标题
(如在我的HTML代码片段中),而且,整个垂直链接“块”将包装在类活动
内,而不仅仅是配置中的链接播放。在上面的打字稿中,我们说:“像处理当前活动页面(CUR)一样处理活动根行(ACT)中的所有页面,并对两种深度(2<.1)”进行处理。你可以随心所欲地改变行为。我从这里推荐试用和错误原则,这样您就可以了解这款HMENU的工作原理。我还向官方文档中添加了一个lin,您可以在其中找到解释的每个组件以及示例。无论如何,我解决了活动状态,但我不知道如何区别对待父项和其他项。我试图用CSS解决这个问题,但在IE8上仍然有问题,所以我更喜欢在父项中添加一个类。