Шаблонная дилемма

Думаю многие сталкивались с ситуацией, когда необходимо решить, как лучше и удобнее разбить шаблон. К чему слова, дайошь пример!

Есть обычный 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>
Минусы
При первом: плодится много шаблонов / неудобно править
При втором: условия… необходимо хитро ловить нужные страницы
При третьем: необходимо проставлять набор для каждой страницы / неудобно править

На мой взгляд, второй вариант самый годный и понятный.

А какое решение видите вы?
Виктор
11 августа 2014, 10:54
modx.pro
830
0

Комментарии: 3

Наумов Алексей
12 августа 2014, 08:45
0
1 или 3, в зависимости от ситуации. 2 — никогда.
    Михаил
    12 августа 2014, 09:14
    0
    Хм, ну у меня максимум шаблонов 5 было. Ну это для типичного сайта. Ну пускай даже их 10 будет, что в этом страшного? Просто то что повторяется в чанки)
      Павел Романов
      12 августа 2014, 09:30
      0
      Практически всегда второй вариант.
      Только условия прописываю так:
      [[$[[*id:is=`1`:then=`bloсk1`]]]]
      То есть условие выводит не весь чанк, а только его имя. А дальше оно уже выводится в тег.
      Где-то читал, что так быстрее, поскольку MODX, даже при невыполнении условий сначала парсит все варианты, а потом выбирает нужный. Тут же он, в случае невыполнения условия, выведет только пустой чанк:
      [[$]]
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3