Как настроить страницу в соответствии с ее порядком в TYPO3?

Работая на TYPO3 4.7 с Templavoila 1.7.0, мне нужен способ настроить одно значение шаблона в соответствии с порядком текущей страницы в ее уровне навигации.

В частности, мне нужно изменить атрибут класса div на "left" или "right", если он четный или неровный. Есть ли способ сделать это с помощью Templavoila Typoscript-Attribute?

Для примера:

  • Главная страница
    • Страница 1
      1. Страница 1.1 -> При рендеринге этой страницы я хочу установить атрибут класса "left"
      2. Страница 1.2 -> "Право"
      3. Страница 1.3 -> "Слева"
      4. Страница 1.4 -> "Правильно"
    • Страница 2
    • Страница 3

Спасибо!

1 ответ

Атрибут TemplaVoila TypoScript потерпит неудачу, если кто-то изменит сортировку страниц.

Я бы попробовал сделать меню. С allWrap.cObject = TEXT должна быть возможность переопределить вывод. Так что просто создайте меню, которое отображает класс, и в зависимости от четного или нечетного отображения нужного вам класса.

! Псевдо-код!

lib.getClass = HMENU
lib.getClass {
  1 = TMENU
  1.NO = 1
  1.NO {
    allWrap.cObject = TEXT
    allWrap.cObject.value = left
    allWrap.cObject.override = right
    allWrap.cObject.override {
      if.value = 1
      if.equals.data = REGISTER:count_HMENU_MENUOBJ
      if.equals.stdWrap.wrap = |%2
      if.equals.prioriCalc = 1
    }
  }
}

Не тестировал код, поэтому, если он не работает, проверьте синтаксис. Возможно, деактивируйте переопределение, проверьте значение REGISTER:count_HMENU_MENUOBJ, но я думаю, что это должен быть регистр, который вам нужен.

Другие вопросы по тегам