2012-01-19 33 views
0

這可能聽起來很奇怪,但我有一個菜單,第一頁沒有真正的子頁面。但是,它有一個附加的COA和2個自定義TMENU以及一個插件插入。顯示TMENU.2,即使它沒有子菜單點(但內容)

但是:此頁面的子導航僅在將可見子頁面添加到此頁面(這將是工作區域)時纔會生成。有沒有更好的解決方案讓這個菜單可見?

這裏的Typo腳本:

field_main_navigation = HMENU 
field_main_navigation { 

    1 = TMENU 
    1 { 
     expAll = 1 

     NO. wrapItemAndSub = <div class="wrap-itemAndSub">|</div> 

     ACT < .NO 
     ACT = 1 
     ACT.ATagParams = class="active" 
    } 

    2 = TMENU 
    2 { 
     wrap = <div class="sub clearfix" style="display: none;">|</div> 

     # Custom build for page 2 
     stdWrap.wrap.append = COA 
     stdWrap.wrap.append { 
      if.value.field = pid 
      if.equals = 2 

      # a lot of typoscript, basically: 
      # two COA's, one with two HMENU, the 
      # other one with plugin content 
      10 = COA 
      # ... 

      20 = COA 
      # ... 
     } 


     NO = 1 
     NO { 
      allWrap = <li>|</li> 
     } 
    } 
} 

爲了解釋我想實現
什麼基本上它是一個簡單的「懸停顯示子菜單」。只有第一個項目 在其懸停子菜單中有特殊內容。由於沒有[nav 1]包含的實際 子頁面,因此不會顯示子菜單。

[ nav 1 ] [ nav 2 ] [ nav 3 ] 
|------div.sub style="display: none;" *-------| 
| (Custom TMENU) | (Plugin Content) | 
|     |      | 
|--------------------|------------------------| 
| (Custom TMENU) | (Usual submenu **)| 
|     |      | 
|---------------------------------------------| 

* Pops out when hovering over [ nav 1 ] 

** this _may_ be the case in the future, but 
    currently not. here's the problem 

這導致我到另一個問題(剛纔):我應該做這一切都在我平時的HMENU/TMENU或者我應該呈現正常HMENU/TMENU和前置NAV-1作爲Typo腳本生成的自定義導航點與自定義子導航層?

+0

由於您的自定義內容應放置在子菜單之後,這相當於將** XXX **放在此處,對嗎? 'NO.wrapItemAndSub =

|XXX
' – tmt

+0

更新的問題(在底部的另一個問題。) – pduersteler

+0

如果在第一級的項目不會改變(即與UID 2頁總是存在的),那麼你可以簡單的地方,與菜單前的自定義TypoScript一起,並排除「HMENU」中的該頁面。我的回答考慮到該網頁可能不在那裏。對你起作用嗎? – tmt

回答

1

將您的自定義內容放置在第一級菜單設置上。試試這個:

field_main_navigation = HMENU 
field_main_navigation { 
    1 = TMENU 
    1 { 
    expAll = 1 

    NO.wrapItemAndSub { 
     append = COA 
     append { 
     if { 
      value.field = uid 
      equals = 2 
     } 

     # a lot of typoscript, basically: 
     # two COA's, one with two HMENU, the 
     # other one with plugin content 
     10 = COA 
     # ... 

     20 = COA 
     # ... 
     } 

     wrap3 = <div class="wrap-itemAndSub">|</div> 
    } 

    ACT < .NO 
    ACT = 1 
    ACT.ATagParams = class="active" 
    } 

    2 = TMENU 
    2 { 
    wrap = <div class="sub clearfix" style="display: none;">|</div> 

    NO = 1 
    NO { 
     allWrap = <li>|</li> 
    } 
    } 
} 

注意:我有點通過第二TMENU包裹混淆。第一級項目是否有任何真實的子頁面?

+0

對你的筆記:是的,他們會在未來。因此當懸停在第一個水平項目上時應該彈出的第二個水平菜單總是相同的。只是第一個入口(uid 2)有一些額外的內容。 – pduersteler

+0

改變了一下,以保持html/css的有效順序。而不是'wrapItemAndSub {append'我做了'after.cObject {'所以我可以保留通常的'wrapItemAndSub = <...' – pduersteler