kapitansen
@kapitansen
Веб-погромист

Вызов чанка [[$header]] с параметрами?

Продолжаю разбираться с MODX и философии шаблонов, чанков и сниппетов. Нужно вызывать header сайта, причем в некоторых случаях с подключением стороннего JS, в некоторых без. Два разных хедера в разных чанках делать не хочу. Как сделать что-то вроде:

[[$header &load=bs3,yamaps,masonry]] а в другом шаблоне [[$header &load=bs3] ?
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
В коде чанка можно устроить приблизительно такое (кстати, перед перечислением параметров не забывайте ставить после имени чанка или сниппета вопросительный знак):
[[+load:contains=`bs3`:then=`<script src="scripts/bs3.js"></script>`]]
[[+load:contains=`yamaps`:then=`<script src="//maps.yandex.ru/map.js"></script>`]]
[[+load:contains=`masonry`:then=`<script src="vendors/masonry.js"></script>`]]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Realetive
@Realetive
MODX Ambassador России, самозванный БЭМ-евангелист
Ну, в принципе, все правильно делаете. Т. е. если передать [[$header &load=`bs3,yamaps,masonry`]], в самом шаблоне эта строка будет доступна в плейсхолдере [[*load]]. Только чанки — это статический HTML, а вам нужно немного логики, чтобы «разбить» строку на элементы. В MODX это можно сделать, например, с помощью модификаторов:
<!-- Какой-то шаблон или ресурс -->
[[$header:loadScript=`bs3,yamaps,masonry`]]


<!-- Чанк header -->
<script src="/path/to/scripts/[[+script]].js"></script>
Ответ написан
Комментировать
@Ooos
Front-End
Иногда удобно использовать IF
[[$chank?&text=`1`]] внутри чанка [[+text]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы