2013-01-23 65 views
0

我試圖用TypoScript生成的菜單中包裝每個第三項。菜單:包裝每個X項目

這是我的菜單:

tt_content.menu.20.4 > 
tt_content.menu.20.4 < tt_content.menu.20.1 
tt_content.menu.20.4.stdWrap.outerWrap = <div class="my-menu">|</div> 
tt_content.menu.20.4.1.wrap = <ul>|</ul> 
tt_content.menu.20.4.1.NO { 
    doNotLinkIt = 1 
    stdWrap.htmlSpecialChars = 0 
    stdWrap.cObject = COA 
    stdWrap.cObject { 
     # title 
     10 = TEXT 
     10 { 
      field = title 
      typolink.parameter.field = uid 
      typolink.ATagParams = class="more" 
     } 

     # abstract 
     20 = TEXT 
     20 { 
      field = abstract 
      htmlSpecialChars = 1 
      wrap = <span>|</span> 
     } 
    } 
} 

通過How can I apply a different wrap to every menu item?我知道如何包裝每一個項目的不同,是有辦法來包裝三個項目一起?當有超過3%的x = 0項目時,例如, 14,最後一個開標籤必須用最後一個項目關閉。

電流輸出:

<ul class="csc-menu csc-menu-1"> 
    <li> 
     <a href="index.php?id=1">Page 1</a> 
    </li> 
    <li> 
     <a href="index.php?id=2">Page 2</a> 
    </li> 
    <li> 
     <a href="index.php?id=3">Page 3</a> 
    </li> 
    <li> 
     <a href="index.php?id=4">Page 4</a> 
    </li> 
    <li> 
     <a href="index.php?id=5">Page 5</a> 
    </li> 
    <li> 
     <a href="index.php?id=6">Page 6</a> 
    </li> 
    <li> 
     <a href="index.php?id=7">Page 7</a> 
    </li> 
    <li> 
     <a href="index.php?id=8">Page 8</a> 
    </li> 
    <li> 
     <a href="index.php?id=9">Page 9</a> 
    </li> 
</ul> 

通緝輸出,這樣的事情:

<div class="pack"> 
    <a href="index.php?id=1">Page 1</a> 
    <a href="index.php?id=2">Page 2</a> 
    <a href="index.php?id=3">Page 3</a> 
</div> 
<div class="pack"> 
    <a href="index.php?id=4">Page 4</a> 
    <a href="index.php?id=5">Page 5</a> 
    <a href="index.php?id=6">Page 6</a> 
</div> 
<div class="pack"> 
    <a href="index.php?id=7">Page 7</a> 
    <a href="index.php?id=8">Page 8</a> 
    <a href="index.php?id=9">Page 9</a> 
</div> 
<div class="pack"> 
    <a href="index.php?id=10">Page 10</a> 
    <a href="index.php?id=11">Page 11</a> 
</div> 
+0

請複製粘貼當前的HTML輸出和輸出我們需要。 –

+0

謝謝。請找到我更新的答案。 –

回答

1

下面的Typo腳本可以幫助你(這是對於頁菜單組3個頁面鏈接在一起,你需要修改它根據您的要求。):

page.234 = COA 
page.234{ 
wrap = <ul> |</ul> 
10 = HMENU 
10.1 = TMENU 
10.special = directory 
10.special.value = 1 
10.1 { 
wrap = <li><ul>|</ul></li> 
begin = 1 
maxItems = 3 
NO { 
    allWrap = <li> |</li> 
} 
} 
20 < .10 
20.1.begin = 6 
30 < .10 
30.1.begin = 9 
# etc. etc. 
} 
4

基本上你問2個問題。

但是,你可能會使用optionSplit。 [1]

第一: 「包裝每3項」

您的代碼將看起來像:

tt_content.menu.20.4.1.NO.allWrap = |*| <ul>|</ul> || <ul>|</ul> || <ul class="third">|</ul> |*| 

二: 「有沒有辦法來包裝三個項目一起」

您的代碼將看起來像:

tt_content.menu.20.4.1.NO.allWrap = |*| <div class="threepack"> <ul>|</ul> || <ul>|</ul> || <ul>|</ul> </div> |*| 

如何optionSplit在這些情況下,IST工作:

  • 你有沒有第一和最後一個部分,所以中間部分是循環的所有條目。
  • 中間部分由3個子部分組成,也是循環的。

希望有所幫助。

PS:不要忘了接受一個答案;-)

鏈接:

  1. http://wiki.typo3.org/TSref/optionSplit
+0

謝謝你的回覆。 :)不幸的是,它不工作...如果我簡化這樣的TypoScript ... http://pastebin.com/7d683RMg ...我會得到這樣的列表:pastebin.com/40KyXbir - 值得注意的是*在列表的末尾。 – internerz

+0

剛剛編輯我的答案。請重新檢查。 – chrode