Modx REVO Устанавливаем шаблон по умолчанию для ресурсов через плагин

В 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 шаблона, который автоматически будет подставляться ко всем ресурсам, которые создаются внутри ресурса «Статьи».

Теперь сохраняем плагин и пробуем создать дочерний ресурс. Если все было сделано правильно, то ваш шаблон для новых документов будет подставляться на тот, который вам нужно.

Похожие записи:
Знакомство с системой управления сайтом Modx Revo
Знакомство с системой управления сайтом Modx Revo

Данная статья посвящена знакомству с основными элементами системы управления сайтом Подробнее:

Авторизация через социальные сети на Modx Revo
Авторизация через социальные сети на Modx Revo

Добрый день! Сегодня я решил написать статью о том, как Подробнее:

Вывод статей на сайте Modx Revo GetResources
Вывод статей на сайте Modx Revo GetResources

Добрый день! Сегодня мы разберем основы вывода наших статей на Подробнее:

Modx Revo перенос сайта на другой хостинг
Modx Revo перенос сайта на другой хостинг

Периодически возникает проблема и вопрос в переносе сайта MODX Revo с Подробнее:

Добавить комментарий

Ваш адрес email не будет опубликован.