2012-05-01 72 views
1

我正在嘗試解決typo3中的設計問題實現。基本上,我必須實現從目錄生成的標籤式菜單(只有活動狀態是選項卡式),但每個活動(標籤式)菜單必須具有不同的bg顏色(與標籤主體框匹配)。我選擇最初使用TMENU,但之前被引入到選項分割功能中以實現此目的,但我無法想到使用TMENU實現此目的的方法,因此我目前正在嘗試使用GMENU,但我沒有得到正確的結果結果。下面是我目前的代碼,它給了我空白的空格。我正在嘗試複製標籤圖像並集中圖像中的文本,但使用選項分割來複制文件。如何使用選項split來控制typo3菜單屬性?

temp.navmenu1 = HMENU 
special = directory 
special.value = {$idMenu} 
entryLevel = 1 
temp.navmenu1.1 = GMENU 

temp.navmenu1.1 { 
    NO = 1 
    NO{ 
    NO.Wrap = <ul style="display: inline; "> | </ul> 
    backColor = #d9d9d9 
    10 = TEXT 
    10.text.field = title 
    10.offset = 0,5 
    10.align = center 
    10.niceText = 1 
    } 
    ACT < .NO 
    ACT{ 
     XY = [4.w],[4.h] 

     4 = IMAGE 
     4.file = {$hmtab}|*|{$midtab}|*|{$endtab} 
    } 

} 

# Temp items aren't rendered, so let's copy it into a TSOP 
tv.navmenu1 < temp.navmenu1 

page = PAGE 
page.typeNum = 0 
page.10 = USER 
page.10.userFunc = tx_templavoila_pi1->main_page 
+0

這些變量來自哪裏(hmtab,midtab,endtab,idMenu?你的嵌套在「NO.Wrap =」是錯誤的,這隻能是「wrap =」(沒有上限!)。 – pgampe

回答

9

我不認爲一個新的網站應該使用GMENU了。相反,你應該使用TMENU與CSS。

下面是一個基本的例子,應該讓你開始:

10 = HMENU 
10 { 
    special = directory 
    # start with pid 3 
    special.value = 3 
    1 = TMENU 
    1 { 
    expAll = 1 
    wrap = <ul>|</ul> 
    NO = 1 
    NO { 
     wrapItemAndSub = <li>|</li> 
     ATagTitle = abstract // description // title 
    } 
    ACT < .NO 
    ACT.wrapItemAndSub = <li class="active">|</li> 
    CUR < .NO 
    CUR.wrapItemAndSub = <li class="current">|</li> 
    } 
    2 < .1 
    3 < .1 
    4 < .1 
    4.wrap = <ul class="level-4">|</li> 
} 

當然,你現在可以使用option splitwrapItemAndSub,像這樣:wrapItemAndSub = <li class="first">|</li> |*| <li class="normal">|</li> |*| <li class="last">|</li>

其餘的則只是正常的CSS。

+0

非常感謝。已經改進了我對網頁設計的理解和打字錯誤很大程度上與您的解決方案 –

+0

棄用GMENU豎起大拇指 – Mateng

+0

對於正確的標題呈現,您需要添加字段(ATagTitle.field = abstract // description // title) – Marvin

1

如果你的問題是你想用不同的類屬性在同一層上包裝不同的子菜單,那麼看看TMENU對象的submenuObjSuffixes屬性。

儘管無法使用optionsplit和wrap(僅僅因爲wrap只執行一次),但使用submenuObjSuffixes很可能會得到所需的結果。

下面是一個例子:

1 = TMENU 
1 { 
    wrap = <ul>|</ul> 
    submenuObjSuffixes = |*| b |*| c 

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

2 < .1 
2.wrap = <ul class="firstItem">|</ul> 
2b < .1 
2b.wrap = <ul class="middleItems">|</ul> 
2c < .1 
2c.wrap = <ul class="lastItem">|</ul> 

3 < .2 
3b < .2b 
3c < .2c 
4 < .2 
4b < .2b 
4c < .2c 

這將包裹第一第二級菜單帶班「與firstItem」,用「lastItem」,並以一流的「middleItems」所有inbetweens最後2級菜單。

請理解後綴會附加到所有後續菜單級別。因此,如果您在第1級使用子菜單ObjSuffixes,它不僅會影響第2級,還會影響第3,4,4級......並且您還必須在這些級別上定義相應的選項,否則它們將不會呈現。

相關問題