我想创建一个复制菜单(水平和垂直),复制我网站的结构。
假设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 child
在我之前的版本中,静态的父页面和我使用TypoScript为子项创建菜单。由于我不知道更好,每个显示的菜单都有自己的代码,如下所示:
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
}
}
这是呈现菜单的Fluid模板:
<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>
为了避免硬编码的父母,我想动态创建整个菜单。如何实现这一目标?
答案 0 :(得分:2)
在根级别启动HMENU并为HMENU添加深度(2 = TMENU)。这样的事情(根据需要调整HTML):
lib.menuChildren = HMENU
lib.menuChildrenl{
special = directory
special.value = {$root}
wrap = <ul class="nav nav-default">|</ul>
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
}
2 < .1
2.wrap = <ul class="nav nav-stacked">|</ul>
}
要使外观垂直/水平,您必须使用CSS。
http://docs.typo3.org/typo3cms/TyposcriptReference/MenuObjects/Index.html