ChangeTemplate это плагин для MODx Revolution (2.2.0-PL2). Этот плагин является особенно полезным, когда нам необходимо контролировать, какой шаблон наследуется детей документах некий документ родителя.
С ChangeTemplate пользователю не нужно помнить, чтобы выбрать любой шаблон, потому что это будет сделано автоматически с помощью плагина, тем самым устраняя / снижение риск нарушения на сайте.
1. Установка
Для установки плагина ChangeTemplate перейдите в раздел "Элементы> Plugins> Новый плагин", напишите следующим образом: Название плагина : ChangeTemplate
Системные события: OnDocFormRender Plugin кода (PHP) :
<!--?php /** * ========================= * ChangeTemplate * ========================= * * Plugin for MODX Revolution * Set which template is inherited by children * documents of a certain parent document * * Author: * Marc Loehe (boundaryfunctions) * marcloehe.de * * Modified by: * Lorenzo Stanco <lorenzo.stanco@gmail.com--> * Lorenzostanco.com * * Usage: * * 1. Paste this as new plugin and connect it to system event * 'OnDocFormRender'. * * 2. Assign a new TV 'changeTemplate' to each template * for which you want to define the default children template. * * 3. Set the newly created TV to input type "Text" * * 4. Open a document and in the 'changeTemplate' TV type a * comma separated list of template IDs. * * 5. Have fun! * */ // Check Event if ($modx->event->name == OnDocFormRender && $mode == modSystemEvent::MODE_NEW) { // Get current document ID if ($id = $_REQUEST['id']) { // Document Chain $resources = array($id); // Get parent ID foreach ($modx->getParentIds($id, 10, array('context' => $_REQUEST['context_key'])) as $parentId) { if ($parentId) array_push($resources, $parentId); } // Search changeTemplate in the chain $level = 0; $childTemplates = array(); foreach ($resources as $resourceId) { $resource = $modx->getObject('modResource', $resourceId); if ($childTemplatesTV = $resource->getTVValue('changeTemplate')) { // Create template array for each tree level $childTemplates = @explode(',', $childTemplatesTV); if (empty($childTemplates)) break; foreach ($childTemplates as $k => $v) $childTemplates[$k] = intval(trim($v)); break; } $level++; } // Set template based on tree level if (!empty($childTemplates)) { $useTemplate = $childTemplates[$level]; if (!empty($useTemplate)) { // Set default template if (isset($modx->controller)) { $modx->controller->setProperty('template', $useTemplate); } else { // modX < 2.2.0 $_REQUEST['template'] = $useTemplate; } } } } }
Теперь создайте эту переменную шаблона: ТВ Имя : changeTemplate телевизора Входные параметры: Текст, для каких шаблонов использовать: здесь выбрать, в каком шаблоне вы хотите использовать этот плагин
2. Использование
Этот плагин очень прост в использовании. Давайте предположим, что у нас есть шаблон 1 (1), Шаблон 2 (4), Шаблон 3 (5), Шаблон 4 (6), и шаблона 5 (7), какПервый шаг, чтобы перейти к "ресурсам" на вкладке, открыть "Home" документа (или любой другой документ) и установите значение для параметра «changeTemplate« Шаблон переменной на "4,5,6,7". Эти цифры являются идентификаторами наших шаблонов. Вот скриншот моего "changeTemplate" ТВ:Как только этот документ сохраняется, мы можем создать вложенные документы "Home", и плагин "ChangeTemplate" позаботится о выборе шаблона для каждого уровня дерева:
Дерево Уровень 2 => 2 шаблона (ID 4)
Дерево Уровень 3 => 3 шаблона (ID 5)
Дерево Уровень 4 => 4 шаблона (ID 6)
Дерево Уровень 5 => Шаблон 5 (ID 7)
Вот и все! Вы можете найти более подробную информацию об этом плагине на этой ветке форума .
Смотрите также:
Услуги по MODX Revolution
Посмотреть все услуги
Оптимизация сайта
Заказав услуги по технической оптимизации сайта мы избавим вас от ошибок присутствующих на сайте, а так же увеличим скорость работы вашего сайта.
Создание сайта на MODX
Мы создадим для вас такой сайт, который подойдет именно в вашем случае и станет отличным инструментом привлечения клиентов и увеличения продаж.
Перенос сайта на MODX
Работа по переносу сайта на MODX осуществляется в максимально короткие сроки. Стоимость зависит от сложности переносимого сайта
Продвижение сайта на MODX
Если вы хотите получить быстрые и ощутимые результаты, подняться в топ в минимальные сроки, то доверьте нам продвижение своего сайта.