HMENU:如何将页面内容包装到我的菜单中?

问题描述 投票:0回答:3

我想根据定义到文件夹中的页面内容构建一个完整的下拉菜单。

想法是:

MENU(文件夹) - 菜单1(页面) - 菜单2(页面)

我的目标是获得以下输出:

  • 菜单1页面中的菜单1内容
  • 菜单2页面中的菜单2内容

页面中只有一个内容块。

用菜单1/2来获取li没问题,但我找不到获取和包装页面内容的方法。

我的代码看起来像

menu.nav = HMENU
menu.nav {
  special = directory
  special.value = 214
  entryLevel = 1
  1 = TMENU
  1.wrap = <ul>|</ul>
  1.expAll = 1
  1.NO = 1
  1.NO.wrapItemAndSub.cObject = TEXT
  1.NO.wrapItemAndSub.cObject.value = <li>|</ul></li>
  1.NO.after.cObject = COA
  1.NO.after.cObject {
    10 = TEXT
    10.value = <div class="dropdown">

    20 = CONTENT
    20 {
      table = tt_content
      select {

.... 

但我无法弄清楚这里需要什么来获取页面的内容。

有人可以帮我解决这个问题吗?

提前致谢。关心乔尔

typo3 typoscript
3个回答
0
投票

我会在这里尝试一个解决方案,希望我不会简化你的代码,至少你可以把它作为一个起点:

menu.nav = HMENU
menu.nav {
    special = directory
    special.value = 214    
    1 = TMENU
    1.wrap = <ul>|</ul>
    1.NO {

        wrapItemAndSub = <li>|</li>
        after.cObject = CONTENT
        after.cObject {
            table = tt_content
            select {
                pidInList.field = uid
                where =   {#colPos} = 0   
            }
            renderObj = < tt_content
            wrap = <div class="dropdown">|</div>  
        }
    }
} 

我把this one作为起点。


0
投票

我前段时间遇到过类似的问题,想出了这个代码来制作一个包含数据库信息的菜单。

这不是答案,但它是一段类似的代码。希望它能给你一个想法。

它生成一个指向“no_search”= 0或其他条件的页面的链接列表。还有一个数据库连接,用于获取站点中页面的页面路径或URL。

认为您可以对页面内容做同样的事情,将其输出为html。

lib.sitemap = CONTENT
lib.sitemap {
  table = pages
  select {
    orderBy = pages.sorting
    selectFields = pages.uid, pages.title, tx_realurl_pathcache.pagepath
    join = tx_realurl_pathcache ON tx_realurl_pathcache.page_id=pages.uid
    pidInList = 44
    recursive = 7
    where = (no_search="0") or (nav_hide=1 and no_search=0)
    groupBy = tx_realurl_pathcache.page_id
  }
  renderObj = COA
  renderObj.wrap = <li>|</li>
  renderObj.10 = TEXT
  renderObj.10 {
    field = pagepath
    wrap = <a href="|">
  }
  renderObj.20 = TEXT
  renderObj.20.field = title
  renderObj.30 = TEXT
  renderObj.30.value = </a>
}
lib.sitemap.wrap = <ul> | </ul>

0
投票

你必须这样做

lib.navbar2 = COA
lib.navbar2.wrap = <nav>|</nav>
lib.navbar2 {
20 = HMENU
20.wrap = <ul>|</ul>
20 {
    #entryLevel = 0
    #excludeUidList = 11,12
    1 = TMENU
    1 {
        wrap = |
        expAll = 1

        NO = 1
        NO.allWrap >
        NO.wrapItemAndSub = <li>|</li>
        NO.after.cObject = COA
        NO.after.cObject{
            stdWrap.wrap = <div class="megamenu-wrapper">|</div>
            20 = CONTENT
            20 {
                table = tt_content
                select {
                    pidInList.field = uid
                    orderBy = sorting
                    where = colPos=4 
                    languageField=sys_language_uid
                }
            }
            20.wrap = |
        }

        ACT = 1
        ACT < .NO
        ACT.wrapItemAndSub = <li class="active">|</li>

        CUR = 1
        CUR < .NO
        CUR.wrapItemAndSub = <li class="active">|</li>
    }
}
}
© www.soinside.com 2019 - 2024. All rights reserved.