Шаблонная дилемма
Думаю многие сталкивались с ситуацией, когда необходимо решить, как лучше и удобнее разбить шаблон. К чему слова, дайошь пример!
Есть обычный 2-х колоночный шаблон
1) Несколько шаблонов
При первом: плодится много шаблонов / неудобно править
При втором: условия… необходимо хитро ловить нужные страницы
При третьем: необходимо проставлять набор для каждой страницы / неудобно править
На мой взгляд, второй вариант самый годный и понятный.
А какое решение видите вы?
Есть обычный 2-х колоночный шаблон
<header>
шапка
</header>
<div id="leftBlock">[[*content]]</div>
<div id="rightBlock">Вот тут нужно вывести разные блоки/вызовы/чанки</div>
<footer>
подвал
</footer>
Пути решения, которые вижу я:1) Несколько шаблонов
<header>
шапка
</header>
<div id="leftBlock">[[*content]]</div>
<div id="rightBlock">[[$blcok1]][[$blcok2]]</div>
<footer>
подвал
</footer>
<!--Еще шаблон-->
<header>
шапка
</header>
<div id="leftBlock">[[*content]]</div>
<div id="rightBlock">[[$blcok1]][[$blcok3]]</div>
<footer>
подвал
</footer>
<!--Больше шаблонов-->
2) 1 шаблон и в нем условия<header>
шапка
</header>
<div id="leftBlock">[[*content]]</div>
<div id="rightBlock">
[[$blcok1]]
[[*id:is=`1`:then=`[[$blcok2]]`]]
[[*id:is=`2`:then=`[[$blcok3]]`]]
[[*id:is=`3`:then=`[[$blcok2]][[$blcok4]]`]]
</div>
<footer>
подвал
</footer>
3) 1 шаблон и в нем твшка<header>
шапка
</header>
<div id="leftBlock">[[*content]]</div>
<div id="rightBlock">
[[*rightBlock]]
</div>
<footer>
подвал
</footer>
МинусыПри первом: плодится много шаблонов / неудобно править
При втором: условия… необходимо хитро ловить нужные страницы
При третьем: необходимо проставлять набор для каждой страницы / неудобно править
На мой взгляд, второй вариант самый годный и понятный.
А какое решение видите вы?
Комментарии: 3
1 или 3, в зависимости от ситуации. 2 — никогда.
Хм, ну у меня максимум шаблонов 5 было. Ну это для типичного сайта. Ну пускай даже их 10 будет, что в этом страшного? Просто то что повторяется в чанки)
Практически всегда второй вариант.
Только условия прописываю так:
Где-то читал, что так быстрее, поскольку MODX, даже при невыполнении условий сначала парсит все варианты, а потом выбирает нужный. Тут же он, в случае невыполнения условия, выведет только пустой чанк:
Только условия прописываю так:
[[$[[*id:is=`1`:then=`bloсk1`]]]]
То есть условие выводит не весь чанк, а только его имя. А дальше оно уже выводится в тег.Где-то читал, что так быстрее, поскольку MODX, даже при невыполнении условий сначала парсит все варианты, а потом выбирает нужный. Тут же он, в случае невыполнения условия, выведет только пустой чанк:
[[$]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.