Добрый день.У меня возник вопрос, возможно ли в Revo (2.2.7-pl), сделать чтобы к новым ресурсам применялись соседние шаблоны, как в Evo.Я сделал через Безопасность->Настройка форм-> профиль и правила Ограничивающее поле — parent, а значение — 2(это родитель) Далее в template в столбце значение по умолчанию 3(id шаблона). Если я создаю документ, то шаблон применяется, но мне надо чтобы он только к первому и второму уровню вложенности применялся, а во остальных случаях был другой шаблон с id 4.Может кто сталкивался с этим и находил решение. Пример того что надо: есть каталог(id 2): -Садовая мебель (Шаблон категории) --Кресла качалки (Шаблон категории) ---Кресло качалка из ротанга (Шаблон товара) ---Кресло качалка из ротанга Novo (Шаблон товара) --Мебель из дерева (Шаблон категории) -Садовая мебель (Шаблон категории)
Если кому то понадобится,нашел плагин для этого дела PHP: Имя плагина: ChangeTemplateСистемные события: OnDocFormRenderКод плагина<?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 <[email protected]>* 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 Eventif ($modx->event->name == OnDocFormRender && $mode == modSystemEvent::MODE_NEW) {// Get current document IDif ($id = $_REQUEST['id']) {// Document Chain$resources = array($id);// Get parent IDforeach ($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 = ',', $childTemplatesTV;if (empty($childTemplates)) break;foreach ($childTemplates as $k => $v) $childTemplates[$k] = intval(trim($v));break;}$level++;}// Set template based on tree levelif (!empty($childTemplates)) {$useTemplate = $childTemplates[$level];if (!empty($useTemplate)) {// Set default templateif (isset($modx->controller)) {$modx->controller->setProperty('template', $useTemplate);} else { // modX < 2.2.0$_REQUEST['template'] = $useTemplate;}}}}}Теперь создайте TVTV Name: changeTemplateTV Input Options: TextTV Template Access: Указать в каких шаблонах, мы используем этот плагин