MODx. Выбор шаблона для дочерних документов

Не раз сталкивался с ситуацией, когда необходимо выбирать определенный шаблон для дочерних документов. Например, если у нас есть страница Новости (с шаблоном all_news) и все ее дочерние документы являются новостями (с шаблоном news_page). В MODx по-умолчанию используется плагин Inherit Page Template, который ставит шаблон родителя при создании документа. В случае, который я описал, данный плагин нам не подходит.

Для решения этой задачи предлагаю воспользоваться плагином Inherit Selected Template. Этот плагин работает следующим образом: вы создаете TV-параметр (типа listbox) для необходимого документа-контейнера и при редактировании его вы выбираете необходимый шаблон для дочерних документов. Все довольно просто и интуитивно понятно.

Установка Inherit Selected Template:

1. Качаете плагин (http://modxcms.com/extras/package/?package=214)

2. Добавляете плагин в back-end. Есть 2 варианта:

  • редактируете Inherit Page Template
  • создаете новый плагин (но, при этом желательно отключить Inherit Page Template)

код плагина находится в файле plugin.inherit.selected.template.02.php.txt (при вставке необходимо удалить тэги «<?php» и «?>«)

3. Ставим галочку OnDocFormPrerender на вкладке системных событий (если она еще не стоит там)

4. В строку конфигурации плагина вставляем код

5. Создаем TV-параметр inheritTpl и отмечаем для него необходимый шаблон(-ы) (тот что у документа-контейнера)

6. В поле Возможные значения вставляем следующий код:

7. Теперь на нужной странице выбираем шаблон для дочерних и радуемся 🙂


Спонсор поста:
Хотите устроиться на высокооплачиваемую работу? Вам необходимо просто найти и заполнить шаблон резюме, после чего отправить это резюме на все подходящие вакансии на любой онлайн бирже труда.