В MODX Revo, как вы уже заметили, при создании дочерних ресурсов, шаблон наследуется от родителя и очень часто бывает необходимо выставить дочерним ресурсам совершенно иной шаблон. До настоящего момента, работая с админкой MODX, я выставлял нужный шаблон вручную.
Выполнять работу подобного рода вручную совсем не интересно, тем более когда нужно добавить 100-200 документов. По этому я решил автоматизировать этот процесс.
Если такое же решение есть на этом сайте, значит я его не нашел и конечно не исключаю что существует возможность сделать тоже самое другим способом.
Modx Revo шаблон по умолчанию
Для того чтобы выставить шаблон по умолчанию для ресурса нам понадобится:
1. Создать плагин.
Для создания плагина необходимо перейти на вкладку «Элементы» (вкладка находится над деревом ресурсов), затем под этой вкладкой нажать кнопку «Новый плагин» (вторая справа).
2. Настроить плагин.
На странице создания плагина нужно придумать ему имя (например My plugin), затем перейти на вкладку «Системные события» и поставить галочку справа от «OnBeforeDocFormSave». Это событие означат, что код нашего плагина будет выполнен до того, как документ будет сохранен. Т. е. сначала выполняется код плагина, а потом документ сохраняется.
Теперь возвращаемся на вкладку «Создать / редактировать плагин» и пишем код плагина:
switch($modx->event->name){
case'OnBeforeDocFormSave':
if($resource->get('parent')==2){// Вместо 2 укажите ID родительского ресурса
(ID ресурса можно узнать в дереве документов, он написан в скобочках)
$resource->set('template',3);// Вместо 3 подставьте ID шаблона по умолчанию
(ID шаблона можно узнать в дереве шаблонов, он также написал в скобочках)
}
break;
}
На всякие случай повторно поясню комментарии в коде.
Например, у нас есть ресурс «Статьи» с ID 4 и внутри него (в дереве ресурсов прямо), созданы еще 10 ресурсов со своими ID-шниками. Нам нужно чтобы для всех документов, которые создаются внутри ресурса «Статьи» автоматически подставлялся какой-то шаблон. Что мы делаем для этого:
$resource->get('parent')==2
Тут вместо 2 подставляем 4. Потому что «Статьи» — это родительский ресурс и ID у него 4.
$resource->set('template',3);
Тут вместо 3 подставляем ID шаблона, который автоматически будет подставляться ко всем ресурсам, которые создаются внутри ресурса «Статьи».
Теперь сохраняем плагин и пробуем создать дочерний ресурс. Если все было сделано правильно, то ваш шаблон для новых документов будет подставляться на тот, который вам нужно.