"Уже сегодня делай то, о чем другие будут думать завтра!"

MODx Revolution Plugin: ChangeTemplate

Сайдбар

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-&gt;event->name == OnDocFormRender &amp;& $mode == modSystemEvent::MODE_NEW) {
   
  // Get current document ID
  if ($id = $_REQUEST['id']) {
 
    // Document Chain
    $resources = array($id);
 
    // Get parent ID
    foreach ($modx-&gt;getParentIds($id, 10, array('context' =&gt; $_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-&gt;getObject('modResource', $resourceId);
      if ($childTemplatesTV = $resource-&gt;getTVValue('changeTemplate')) {
         
        // Create template array for each tree level
        $childTemplates = @explode(',', $childTemplatesTV);
        if (empty($childTemplates)) break;
        foreach ($childTemplates as $k =&gt; $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-&gt;controller)) {
          $modx-&gt;controller->setProperty('template', $useTemplate);
        } else { // modX &lt; 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

Смотрите также:

Asset Manager MODX Revolution

Asset Manager MODX Revolution

Смотреть

Quickstart Buttons

Quickstart Buttons

Смотреть

Как обновить MODX Revolution

Как обновить MODX Revolution

Смотреть


Услуги по MODX Revolution

Посмотреть все услуги

Оптимизация сайта

Оптимизация сайта

Заказав услуги по технической оптимизации сайта мы избавим вас от ошибок присутствующих на сайте, а так же увеличим скорость работы вашего сайта.

Подробнее & Заказать

Создание сайта на MODX

Создание сайта на MODX

Мы создадим для вас такой сайт, который подойдет именно в вашем случае и станет отличным инструментом привлечения клиентов и увеличения продаж.

Подробнее & Заказать

Перенос сайта на MODX

Перенос сайта на MODX

Работа по переносу сайта на MODX осуществляется в максимально короткие сроки. Стоимость зависит от сложности переносимого сайта

Подробнее & Заказать

Продвижение сайта на MODX

Продвижение сайта на MODX

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

Подробнее & Заказать

Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

telegram: @Accusser
skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Sign In