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 является гибкое шаблонирование. Большая часть гибкости Подробнее:

Minishop2 минимальная сумма в заказе
Minishop2 минимальная сумма в заказе

Итак, допустим клиенту потребовалось, чтобы помимо сообщений о том, что Подробнее:

MiniShop2. Оформление заказа (обязательные поля)
MiniShop2. Оформление заказа (обязательные поля)

При оформлении заказа у каждого метода доставки есть свои обязательные Подробнее:

Modx поиск по сайту с помощью SimpleSearch
Modx поиск по сайту с помощью SimpleSearch

Всем добрый день. Сегодня хочу вам рассказать о том, как Подробнее:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *