2014-01-20 8 views
1

Я пытаюсь разделить число (12 в моем случае, из-за использования фреймворка Front Foundation) на количество страниц, которые будут отображаться в меню, создаваемом наложением текста страницы, и выводить результат как часть имени класса элементов меню 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 divClass регистр count_menuItems уже доступен.

+0

Это был на правильном пути из-за необходимости использования LOAD_REGISTER, но это выглядит, как если бы он должен был быть создан как CObject –

Смежные вопросы