2012-12-07 37 views
1

我正在一個菜單上顯示第一級爲普通鏈接。第二個菜單級別應該構建爲內容元素的錨點菜單。通過this post我建立以下TS啓發:(「阿諾德存有」和「到底是誰你。」的主頁被CES)建立一個帶錨鏈接的菜單作爲第二個菜單級

lib.footerMenu = HMENU 
lib.footerMenu { 
1 = TMENU 
1 { 
    wrap = <ul class="nav">|</ul> 
    noBlur = 1 

    NO = 1 
    NO { 
     wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li> 
     ATagParams = class="first" |*| |*| class="last" 
     after.cObject = CONTENT 
     after.cObject { 
      table = tt_content 
      select { 
       pidInList = this 
       orderBy = sorting 
       where = colPos=1 
       languageField = sys_language_uid 
      } 
      wrap = <ul>|</ul> 
      renderObj = TEXT 
      renderObj { 
       field = header 
       dataWrap = <li><a href="#c{field:uid}">|</a></li> 
      } 
     } 
    } 
    } 
} 

產生類似的東西:

<ul class="nav"> 
    <li class="first"><a href="/" class="first">Homepage</a> 
     <ul> 
      <li><a href="#c1">Arnold ipsum.</a></li> 
      <li><a href="#c11">Who the hell are you.</a></li> 
     </ul> 
    </li> 
    <li><a href="team/">Team</a> 
     <ul> 
      <li><a href="#c1">Arnold ipsum.</a></li> 
      <li><a href="#c11">Who the hell are you.</a></li> 
     </ul> 
    </li> 
    ... 
</ul> 

的現在的問題是,這個(pidInList = this)總是保存實際的頁面id,因此實際頁面的錨點菜單被附加到所有主菜單項。

如何在每個主菜單下方顯示正確的錨點菜單?

回答

3
lib.footerMenu = HMENU 
lib.footerMenu { 
    1 = TMENU 
    1 { 
    wrap = <ul class="nav">|</ul> 
    noBlur = 1 

    NO = 1 
    NO { 
     wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li> 
     ATagParams = class="first" |*| |*| class="last" 
     after.cObject = CONTENT 
     after.cObject { 
     table = tt_content 
     select { 
      pidInList.stdWrap.cObject = CASE 
      pidInList.stdWrap.cObject { 
      key.field = doktype 

      default = TEXT 
      default.field = uid 

      4 = TEXT 
      4.field = shortcut 
      } 
      orderBy = sorting 
      where = colPos=1 
      languageField = sys_language_uid 
      selectFields = uid,pid,header 
     } 
     wrap = <ul>|</ul> 
     renderObj = TEXT 
     renderObj { 
      field = header 
      typolink { 
      parameter.field = pid 
      section.field = uid 
      } 
      wrap = <li>|</li> 
     } 
     } 
    } 
    } 
} 

雖然,它可能無法在舊版本TYPO3的安裝,因爲如果我沒有記錯pidInList沒有使用有stdWrap工作。它應該在TYPO3 4.5+上工作。

+1

我已經擴展了代碼,因爲我意識到錨點仍然是錯誤的,因爲它們將用於當前頁面而不是目標頁面。 – tmt

+0

您的解決方案几乎是完美的。有沒有辦法讓它與快捷鍵一起工作呢?我的'主頁'是一個捷徑,它上面沒有CE。這些應該從真正的主頁中提取。 – madc

+0

還有一個問題,因爲錨點指向當前頁面而不是CE真正在的頁面。我想我必須添加一些東西到'dataWrap =

  • |
  • '以及!! – madc

    相關問題