TYPO3: Счетчики. Вывод последовательной нумерации для меню, контент блоков и т.д.
Часто возникающий вопрос: “Как реализовать счетчик в TYPO3?” “Как пронумеровать пункты меню?” Хотя для этого есть нумерованные списки HTML, иногда они могут быть не применимы. Например если требуется управляемый процесс выставления номеров или какие-либо действия в зависимости от порядкового номера элемента.
Привыкнув к циклам в языках программирования, многие разработчики ищут подобные структуры в TypoScript. Но TypoScript не язык программирования – это всего лишь конфигурация системы и циклов там нет. Но можно задать конфигурацию где организовывать счетчик и указать как его вычислять.
Для реализации счетчика потребуется переменная для хранения текущего значения. В TYPO3 для хранения значений на этапе вывода используются регистры (registers), в которые можно сохранять любые данные и использовать их при выводе информации на сайт.
Вычисления осуществляются функцией prioriCalc, которая задает, что значение находящееся в потоке вывода является арифметическую формулу и должно подвергнуться вычислению.
Собственно это все, что требуется для организации счетчика в итерационных процессах. Далее следует поместить в цикл увеличение счетчика на каждой итерации:
1 2 3 4 5 6 7 | 10 = LOAD_REGISTER 10.counter { cObject = TEXT cObject.data = register:counter cObject.wrap = |+1 prioriCalc = intval } |
Идея проста – на каждой итерации любого цикла, LOAD_REGISTER будет выбирать значение регистра “counter” и дописывать к нему “+1″. Далее это значение будет вычисляться и помещаться назад в регистр “counter”.
Данный код может быть размещен в любом месте где Вам необходимо что либо считать: элемент меню – для вывода порядкового номера, RenderObj – для вывода порядкового номера контент блока.
А организация циклов, это уже внутренне дело TYPO3, хотя в любом месте можно устроить искусственный цикл с помощью optionSplit.









