【问题标题】:TYPO3: Typoscript menu with condition for specific page idTYPO3:带有特定页面 ID 条件的排版菜单
【发布时间】:2017-10-08 18:20:48
【问题描述】:

我想根据客户的分辨率隐藏/显示菜单项。我认为最简单的方法是添加一个 css 类并使用媒体查询来处理它。

所以我需要使用打字稿向特定菜单项添加一个类。 有没有办法做到这一点?

这是我的打字菜单的样子:

menu.navbar = HMENU
menu.navbar {
    entryLevel = {$threeme.menu.navbar.entry}
    excludeUidList = {$threeme.menu.navbar.excludeUidList}

    1 = TMENU
    1 {
        expAll = 1
        stdWrap.dataWrap = <ul class="nav navbar-nav colum-{register:count_menuItems}">|</ul>

        NO {
            htmlSpecialChars = 1
            wrapItemAndSub = <li id="navbar{field:uid}" class="" >|</li> |*| <li id="navbar{field:uid}">|</li> |*| <li id="navbar{field:uid}" class="last">|</li>
            wrapItemAndSub.insertData = 1
            ATagTitle.field = description // subtitle
        }

        ACT = 1
        ACT {
            htmlSpecialChars = 1
            wrapItemAndSub = <li id="navbar{field:uid}" class=" active">|</li> |*| <li id="navbar{field:uid}" class="active">|</li> |*| <li id="navbar{field:uid}" class="last active">|</li>
            wrapItemAndSub.insertData = 1
            ATagTitle.field = description // subtitle
        }

        IFSUB = 1
        IFSUB {
            ATagTitle.field = description // subtitle
            wrapItemAndSub = <li id="navbar{field:uid}" class="dropdown first">|</li> |*| <li id="navbar{field:uid}" class="dropdown">|</li> |*| <li id="navbar{field:uid}" class="dropdown last">|</li>
            wrapItemAndSub.insertData = 1
            stdWrap.htmlSpecialChars = 1
            ATagParams = class="dropdown-toggle" data-hover="dropdown" role="button" aria-haspopup="true" aria-expanded="false"
            linkWrap = |<span class="caret"></span>
            ATagBeforeWrap = 1
        }

        ACTIFSUB < .IFSUB
        ACTIFSUB = 1
        ACTIFSUB.wrapItemAndSub = <li id="navbar{field:uid}" class="dropdown first active">|</li> |*| <li id="navbar{field:uid}" class="dropdown active">|</li> |*| <li id="navbar{field:uid}" class="dropdown last active">|</li>
    }

    2 = TMENU
    2 {
        expAll = 1
        wrap = <ul class="dropdown-menu">|</ul>

        NO.htmlSpecialChars = 1
        NO.wrapItemAndSub = |*| <li class="odd">|</li> || <li class="even">|</li> |*|

        ACT = 1
        ACT.htmlSpecialChars = 1
        ACT.wrapItemAndSub = |*| <li class="odd active">|</li> || <li class="even active">|</li> |*|
    }

    3 = TMENU
    3 {
        expAll = 1
        wrap = <ul class="dropdown-submenu">|</ul>

        NO.htmlSpecialChars = 1
        NO.wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>

        ACT = 1
        ACT.htmlSpecialChars = 1
        ACT.wrapItemAndSub = <li class="first active">|</li> |*| <li class="active">|</li> |*| <li class="active last">|</li>
    }

    4 = TMENU
    4 {
        wrap = <ul class="dropdown-submenu-1">|</ul>

        NO.htmlSpecialChars = 1
        NO.wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>

        ACT = 1
        ACT.htmlSpecialChars = 1
        ACT.wrapItemAndSub = <li class="first active">|</li> |*| <li class="active">|</li> |*| <li class="active last">|</li>
    }
}

【问题讨论】:

  • 如果我理解了,你可以在任何地方添加一个使用 {field:uid}; 的类。如果您想定位特定页面,uid 是 IMO 最好的方法,因为它是单义的(您已经在某处使用了 id="navbar{field:uid}" )
  • 谢谢 riccardo 我完全忘记了这一点。我可以使用 {field:uid}
  • 我会写我的评论作为答案

标签: typo3 typoscript fluid


【解决方案1】:

如果您想定位特定页面,使用 uid 是 IMO 最好的方法,因为它是唯一的;所以你可以在任何地方添加一个使用{field:uid}的类。

我看到你已经用它来设置一些 id (&lt;li id="navbar{field:uid}"...)

【讨论】:

    猜你喜欢
    • 2020-02-21
    • 2020-07-03
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2018-04-22
    相关资源
    最近更新 更多