Typoscript导航设置

JF *_*ion 2 typo3 typoscript

我是typo3的新手,我必须设置导航.我已经完成了在Timerate找到的教程,并且我已经构建了演示导航(教程中的第2周).

现在我必须设置一个必须如下的导航:

Link 1 | Link 2 | Link 3 | Link 4
Run Code Online (Sandbox Code Playgroud)

back en结构如下:

Link 1
Link 2
Link 3 (shortcut to sub link 1)
    Sublink 1
    Sublink 2
Link 4
Run Code Online (Sandbox Code Playgroud)

当我在链接1,链接2和链接4指定的部分时,整个菜单工作正常,但是当我点击链接3时没有任何显示.

这些Sublinks将在辅助导航中显示

这是我在root ts模板上的typoscript(我正在使用TemplaVoila):

lib.field_topmenu = HMENU
lib.field_topmenu {
    special = directory
    special.value = {$idMain}
    entryLevel = 2
    1 = TMENU
    1.NO = 1
    1.wrap = <div id="menu"><ul> | </ul></div>
    1.NO.wrapItemAndSub = <li>|</li>
    1.ACT < .1.NO
    1.ACT.ATagParams = class='active'
    2 < .1
}
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?

kon*_*ddy 5

很高兴你加入了TYPO3.

据我所知,对入门级别没什么影响special = directory.

这是一个有效的解决方案:

lib.field_topmenu = HMENU
lib.field_topmenu {
    special = directory
    special.value = 1
    1 = TMENU
    1.NO = 1
    1.wrap = <ul> | </ul>
    1.NO.wrapItemAndSub = <li>|</li>
    1.ACT < .NO
    1.ACT.ATagParams = class='active'
    2 < .1
}
Run Code Online (Sandbox Code Playgroud)

你应该删除id=menu它,因为它会向下重复级别,从而使你的HTML无效

这是我们通常使用的解决方案,它还使用字幕等,并为导航列表的第一个和最后一个元素添加特殊类:

lib.navi.one = HMENU
lib.navi.one {
    1 = TMENU
    1 {

        noBlur = 1
        wrap = <ul>|</ul>
        NO = 1
        NO {
            wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>
            altText = subtitle // title
            title = subtitle // title
        }
        CUR < .NO
        CUR.wrapItemAndSub = <li class="active first">|</li> |*| <li class="active">|</li> |*| <li class="active last">|</li>
        ACT < .CUR
    }
    2 < .1
    3 < .2
    4 < .2
}
Run Code Online (Sandbox Code Playgroud)

您可以很容易地将它采用到您的目录起点(并取消级别3和4):

lib.field_topmenu < lib.navi.one
lib.field_topmenu {
    special = directory
    special.value = {$idMain}
    3 >
    4 >
}
Run Code Online (Sandbox Code Playgroud)