вторник, 1 октября 2013 г.
Константы TYPO3 в шаблоне FLUID
При формировании меню с помощью FLUID, а точнее вьюхелпером - page.menu из пакета VHS, столкнулся с задачей передачи значения константы TYPO3 в качестве одного из параметров вьюхелпера.
Вот как выглядел viewhelper изначально:
<v:page.menu showHidden="1" doktypes="3" classCurrent="" classActive="" classFirst="" classLast="last" pageUid="26">
<ul class="socicons-container">
<f:for each="{menu}" as="menuLink" iteration="menuIterator">
<li {f:if(condition: menuIterator.isLast, then: 'class="last"')}>
<a href="{menuLink.link}" title="{menuLink.title}" target="{menuLink.target}">
<img src="fileadmin/tmpl/florian/Resources/Public/images/icons/{menuLink.subtitle}" width="30" height="30" alt="{menuLink.title}" />
</a>
</li>
</f:for>
</ul>
</v:page.menu>
тут меню формируется на основании страниц, которые содержатся в системной папке с id=26.
Понятное дело, что тупое указание id это не очень хорошо как для пользователя сайта, так и для его разработчика, который планирует использовать наработку с последующих проектах. Поэтому я решил заменить число 26 на тайповскую константу, которую всегда можно будет изменить в разделе констант шаблона. Причем сделать это будет под силу кому угодно, даже не очень эдвансед юзеру.
Итак, создаем TYPO3-константу:
socialIcons = 26
Как же ее значение использовать вьюхелпером? Для этого нужен промежуточный этап. Сначала значение данной константы помещаем в объект lib:
lib.constants.socialIcons.id = {$socialIcons}
А вот значение параметра lib внутри вьюхелпера можно получить с помощью другого вьюхелпера - var.typoscript. В итоге получаем следующую конструкцию:
<v:page.menu showHidden="1" doktypes="3" classCurrent="" classActive="" classFirst="" classLast="last" pageUid="{v:var.typoscript(path: 'lib.constants.socialIcons.id')}">
<ul class="socicons-container">
<f:for each="{menu}" as="menuLink" iteration="menuIterator">
<li {f:if(condition: menuIterator.isLast, then: 'class="last"')}>
<a href="{menuLink.link}" title="{menuLink.title}" target="{menuLink.target}">
<img src="fileadmin/tmpl/florian/Resources/Public/images/icons/{menuLink.subtitle}" width="30" height="30" alt="{menuLink.title}" />
</a>
</li>
</f:for>
</ul>
</v:page.menu>
P.S. Т.к. в примере используется пакет VHS, то не забывайте подключать его с помощью - {namespace v=Tx_Vhs_ViewHelpers} в начале html-шаблона.
Подписаться на:
Комментарии к сообщению (Atom)
О себе

- Вадим Гиркало
- Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Мой сайт
Позвонить мне в Skype
TOP - 3
-
Как я уже писал в одной своей заметке ( SEO и общие рекомендации ), для сайта очень важно, чтобы при обращении к заведомо несуществующей ст...
-
Дорабатывая очередной свой сайт столкнулся с такой проблемкой. В шапке сайта есть две флэш вставки - банер, который вставлен через конструкц...
-
Несмотря на то, что материала по данной тематике вроде бы и достаточно, но весь он носит кусочно-латочно-разрозненный характер, что мешает б...
2 коммент.:
www.cheport.com.ua разработка сайта услуги
«Я не смог бы закрыть свой первый дом без мистера Бенджамина Ли! Бенджамин и его команда сделали все возможное для меня в этой сделке. Он с легкостью справился с моей очень трудной ситуацией и всегда был доступен для меня, когда у меня были вопросы (а у меня их было много), даже когда он был вдали от офиса, что я очень ценил! Он и его команда уладили множество споров с продавцом в последнюю минуту и неустанно работали, чтобы убедиться, что я смогу закрыть до истечения срока аренды (и моей помощи в первоначальном взносе, если на то пошло). Г-н Бенджамин невероятно знающий кредитный специалист, вежливый и терпеливый. Перед моей последней покупкой я просмотрел пару предложений по недвижимости, и Бенджамин был рядом, чтобы помочь с каждым из них, часто координируя свои действия с моим агентом за кулисами. Я чувствовал поддержку на протяжении всего процесса. Благодаря Бенджамину и неустанным усилиям его команды я стал счастливым владельцем дома! Я бы посоветовал вам рассмотреть вопрос о ссуде Бенджамина Бриэля Ли. Г-н Бенджамин Ли Контактная информация через WhatsApp + 1-989-394-3740 Электронная почта- 247officedept@gmail.com.
Отправить комментарий