TYPO3 hmenu禁用一个链接

时间:2016-04-04 14:39:34

标签: typo3 typoscript

我有2级菜单。所有链接都是可点击的,但我想禁用1个链接。此链接用于打开子菜单

         <li class="sub-link"><a href="#">link1</a>
            <ul id="sub-menu">
              <li><a href="#">sublink</a></li>
              <li><a href="#">sublink2</a></li>
            </ul> <!-- sub-menu -->
          </li>
          <li><a href="#">link2</a></li>
          <li><a href="#">link3</a></li>
          <li><a href="#">link4</a></li>
          <li><a href="#">link5</a></li>

我想禁用链接1.我有这样的typoscript:

lib.menu.main  = HMENU
lib.menu.main {
    special = list
    special.value =  22,154,88
    alwaysActivePIDlist = 22
    1 = TMENU
    1.NO = 1          
    1.wrap = <ul>|</ul>
    1.NO.wrapItemAndSub = <li>|</li>
    1.IFSUB=1
    1.IFSUB.wrapItemAndSub = <li class="sub-link">|</li>
    2 < .1
    2.wrap = <ul id="sub-menu">|</ul>
    2.NO.wrapItemAndSub = <li>|</li>
}

我如何判断这个问题?

2 个答案:

答案 0 :(得分:2)

所以我有两种可能性来解决这个问题:

第一个是阅读Typo3-Documentation并查找“optionSplit”和“doNotLinkIt”-options。他们应该帮助你在typoscript中解决你的问题。

另一种是使用Javascript / JQuery解决它。您可以选择(在上面的示例中)菜单的第一项,并将链接替换为您想要的任何内容。

$(document).ready(function(){
    $('.menu a').first().attr('href', '#');
});

我让你成为整个例子的小提琴: https://jsfiddle.net/bdrsssv7/

确保您不在HTML模板中插入Javascript,因为它在其他html-templates的页面上不可用。 只需做一个js文件并通过typoscript插入它:

page.includeJS.file1 = fileadmin/yourTemplateLocation/yourFile.js

我希望我提到的两个解决方案中的一个可以帮助你

答案 1 :(得分:1)

从Typoscript菜单中排除特定的PID(18):

lib.menu = HMENU
lib.menu {
    special = rootline
    special.range = 2,0
    1 = TMENU
    1 {
        NO {
            allWrap = <li> | </li>
            doNotLinkIt.override = 1
            doNotLinkIt.override.if {
                value = 18
                equals.field = uid
            }
        }
    }
}    

或从菜单中排除多个特定的PID(18、19、20)

lib.menu.1.NO.doNotLinkIt.override.if {
    value = 18,19,20
    isInList.field = uid
}
相关问题