簡體   English   中英

TYPO3菜單:僅顯示第一級

[英]TYPO3 Menu: only first level is displayed

我目前正在使用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版中的菜單是否有一些新的命令/語法?

非常感謝你的幫助!

您好,這是您的頂部導航菜單鍵入腳本,如果您想使用第三級菜單,那么此代碼也可能僅適用於第二級菜單

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>
        }
    }
}

}

以下腳本將幫助您顯示到第三級菜單。

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/

同時,我找到了一個解決方案(我不太了解):

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中的所有內容放入一個塊({...})中,而不是使用點符號。 據我了解,這實際上應該沒有任何區別,對嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM