2014-01-20 114 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的 –