TYPO3菜单:仅显示第一级

时间:2015-06-19 12:16:26

标签: typo3 typoscript

我目前正在开发一个使用Typo3 7.3版的新网站。 该网站将有一个菜单,无论当前页面如何,都应列出所有级别。 我尝试使用这个TypoScript(我也在互联网上找到了非常相似的变体):

MENU = HMENU
MENU.special = directory
MENU.special.value = 5
MENU.1 = TMENU
MENU.1 {
  wrap = <ul>|</ul>
  expAll = 1

  NO = 1
  NO  {
    wrapItemAndSub = <li>|</li>
  }
  ACT = 1
  ACT  {
    wrapItemAndSub = <li class="active">|</li>
  }
}
MENU.2 < MENU.1
MENU.2.wrap = <ul>|</ul>

不幸的是,这仅输出页面树的第一级。 我错过了什么? (我在互联网上发现的例子与Typo3版本6.x有关)在Typo3版本7.x中是否有一些新的菜单命令/语法?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:1)

你好这里是你的顶级导航菜单错字脚本如果你想要使用第三级菜单那么它也可能只有二级菜单

lib.Main_menu = COA
lib.Main_menu {
    10 = HMENU
    10.special = directory
    10.special.value = 2
    10 {
        wrap =<ul class="nav navbar-nav navbar-right text-uppercase">|</ul>
        #entryLevel = 0
        1 = TMENU
        1 {
            expAll = 1
            noBlur = 1


       # target = _top
        NO {
        ATagTitle {
            field = title
            fieldRequired = nav_title
        }
            ATagBeforeWrap = 1
            linkWrap = |

            wrapItemAndSub.insertData = 1
            wrapItemAndSub = <li class="menu-{field:uid}">|</li> |*| <li class="menu-{field:uid}">|</li>
            stdWrap.htmlSpecialChars = 1
           # allWrap = <div class="menu_header_no">|</div>

        }


        ACT < .NO
        ACT = 1
        ACT {
             wrapItemAndSub.insertData = 1
             wrapItemAndSub = <li class="active menu-{field:uid}" >|</li> 
            # ATagParams = class="" 
            # allWrap = <div class="menu_header_act">|</div>
        }
        IFSUB < .NO
        IFSUB = 1
        IFSUB {
            stdWrap.htmlSpecialChars = 1
            wrapItemAndSub = <li class="dropdown menu-{field:uid}">|</li> 
           # allWrap = <div class="menu_header_no">|</div>
           # ATagParams = class="dropdown-toggle"  data-toggle="dropdown"

        }
        ACTIFSUB < .IFSUB
        ACTIFSUB = 1
        ACTIFSUB {
            stdWrap.htmlSpecialChars = 1
            wrapItemAndSub = <li class="active menu-{field:uid} dropdown">|</li> 
           # allWrap = <div class="menu_header_no">|</div>
           # ATagParams = class="dropdown-toggle"  data-toggle="dropdown"
           # stdWrap.wrap = <b class="caret"></b>

        }
    }

    2 = TMENU
    2 {
        noBlur = 1
        wrap = <div class="hide-caret" data-toggle="dropdown" role="button" aria-expanded="false"><span class="caret"></span></div><ul class="dropdown-menu" role="menu">|</ul>
        NO {

        ATagTitle {
            field = title
            fieldRequired = nav_title
        }
             wrapItemAndSub.insertData = 1
            stdWrap.htmlSpecialChars = 1
            wrapItemAndSub = <li menu-{field:uid}><span class="sub-name">|</span><div class="menu-img"><img src="typo3conf/ext/fluxtemplate/Resources/Public/img/menu-5.png" class="img-responsive" alt="a" /></div></li> 

        }
        ACT < .NO
        ACT = 1
        ACT {
            wrapItemAndSub = <li class="active menu-{field:uid}"><span class="sub-name">|</span><div class="menu-img"><img src="typo3conf/ext/fluxtemplate/Resources/Public/img/menu-5.png" class="img-responsive" alt="a" /></div></li> 
            # ATagParams = class="" 
            #  allWrap = <div class="menu_header_act">|</div>
        }
    }
}

}

答案 1 :(得分:1)

以下脚本将帮助您显示到第三级菜单。

lib.MainMenu= HMENU
lib.MainMenu.special = directory
lib.MainMenu.special.value = 1
lib.MainMenu.1 = TMENU
lib.MainMenu.1 {

    NO {
      wrapItemAndSub = <li >|</li>
      ATagTitle.field = 1
       #  = 1

    }  
  ACT = 1
  ACT{
      wrapItemAndSub = <li>|</li>
      ATagTitle.field = 1
      stdWrap.htmlSpecialChars = 1
      ATagParams = class="activemenu"
    }
    IFSUB{
      wrapItemAndSub = <li >|</li>
      ATagTitle.field = 1
    }
}

lib.MainMenu.2 < .lib.MainMenu.1
lib.MainMenu.2{

    wrap = <ul>|</ul>
    noBlur = 1
    expAll = 1
    NO {
      wrapItemAndSub = <li >|</li>
      ATagTitle.field = 1
    }  
    IFSUB{
      wrapItemAndSub = <li >|</li>
      ATagTitle.field = 1
     }
}

lib.MainMenu.3 < .lib.MainMenu.2
lib.MainMenu.3{

    wrap = <ul>|</ul>
    noBlur = 1
    expAll = 1
    NO {
      wrapItemAndSub = <li>|</li>
      ATagTitle.field = 1     
    }
    CUR = 1  
    CUR{
        linkWrap= <li>|</li>
    }
    CURIFSUB = 1
    CURIFSUB{
        linkWrap= <li>|</li>
    }

    ACTIFSUB = 1
    ACTIFSUB{
      linkWrap= <li>|</li>
    }  
}

您可以根据您的要求更改HTML

有关TYPO3内容的更多信息,请访问我的博客

https://jainishsenjaliya.wordpress.com/

答案 2 :(得分:0)

同时我找到了一个解决方案(我不完全理解):

MENU = HMENU
MENU.special = directory
MENU.special.value = 5
MENU.1 = TMENU
MENU {
  1 {
    wrap = <ul>|</ul>
    expAll = 1

    NO = 1
    NO  {
      wrapItemAndSub = <li>|</li>
      stdWrap.htmlSpecialChars = 1
      ATagTitle.field = title
    }
    ACT <.NO
    ACT {
      ATagParams = class="active"
    }
  }
  2 < .1
  3 < .2
}

所以我改变的是将MENU中的所有内容放入一个块({...})而不是使用点符号。 根据我的理解,这实际上应该没有任何区别,对吗?