2014-01-20 111 views
1

我試圖通過在頁面的typoscript呈現菜單中出現的頁數來分割一個數字(由於使用Foundation的前端框架,我的情況是12),並輸出結果作爲html菜單項的類名的一部分。Typoscript的數學運算

目前,我可以得到typoscript輸出菜單中的項數{register:count_menuItems},但我無法弄清楚如何分割這個數字並輸出商。

下面是我的代碼:

lib.navigation.secondary = HMENU 
lib.navigation.secondary { 
    entryLevel = 1 

    stdWrap.dataWrap = <div class="row large-10 small-centered large-centered columns">|</div> 
    1 = TMENU 
    1 { 
     NO { 
      allWrap = <div class="large-{register:count_menuItems} small-12 columns first">|</div> |*| <div class="large-{register:count_menuItems} small-12 columns">|</div> |*| <div class="large-{register:count_menuItems} small-12 columns last">|</div> 
      allWrap.insertData = 1 

      stdWrap.cObject = COA 
      stdWrap.cObject { 

      # getting the navigation title with fallback to the title 
       10 = TEXT 
       10.field = nav_title // title 
       10.wrap = <h4>|</h4> 

      # getting the subtitle of the page 
       20 = TEXT 
       20.field = subtitle 
       20.wrap = <p>|</p> 

      } 
     } 
    } 
} 

回答

0

以下結束了對我的工作

NO { 
    before.cObject = LOAD_REGISTER 
    before.cObject { 
     menuItems.cObject = TEXT 
     menuItems.cObject { 
      current = 1 
      setCurrent.data = register:count_menuItems 
      setCurrent.wrap = 12/| 
      prioriCalc = 1  
     } 
    } 

    allWrap = <div class="large-{register:count_menuItems} small-12 columns first">|</div> |*| <div class="large-{register:count_menuItems} small-12 columns">|</div> |*| <div class="large-{register:count_menuItems} small-12 columns last">|</div> 
    allWrap.insertData = 1 

    ... 
+0

要創建儘管這樣的工作對我來說,我很想看到更簡潔的實現! –

0

我無法測試,但我認爲你可以通過這種方法解決它:

首先創建一個包含計算結果的LOAD_REGISTER:

page.5 = LOAD_REGISTER 
# the default value 
page.5.divClass = 12 
page.5.divClass.cObject = TEXT 
page.5.divClass.cObject { 
    value = 12 
    stdWrap.dataWrap = |/{register:count_menuItems} 
    prioriCalc = 1 
} 

然後在你的導航使用它:

lib.navigation.secondary = HMENU 
lib.navigation.secondary { 
    entryLevel = 1 

    stdWrap.dataWrap = <div class="row large-10 small-centered large-centered columns">|</div> 
    1 = TMENU 
    1 { 
     NO { 
      allWrap = <div class="large-{register:divClass} small-12 columns first">|</div> |*| <div class="large-{register:divClass} small-12 columns">|</div> |*| <div class="large-{register:divClass} small-12 columns last">|</div> 
      allWrap.insertData = 1 

[...] 

棘手的部分可能是菜單的渲染順序;我不確定是否在創建LOAD_REGISTER div類時,寄存器count_menuItems已經可用。

+0

這是因爲需要使用LOAD_REGISTER在正確的軌道上,但是它看起來好像有一個CObject的 –