2012-12-07 38 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

    相关问题