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

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

skype: metsof
email: accusser@gmail.com

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

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

Авторизация

MODX статьи, уроки и готовые решения для MODX Revo

Сайдбар

MODx Revolution Plugin: ChangeTemplate. Привязка шаблонов к дочерним документам

01 июня 2013

ChangeTemplate это плагин для MODx Revolution (2.2.0-PL2). Этот плагин является особенно полезным, когда нам необходимо контролировать, какой шаблон наследуется детей документах некий документ родителя.
С ChangeTemplate пользователю не нужно помнить, чтобы выбрать любой шаблон, потому что это будет сделано автоматически с помощью плагина, тем самым устраняя / снижение риск нарушения на сайте.

1. Установка


Для установки плагина ChangeTemplate перейдите в раздел «Элементы> Plugins> Новый плагин», напишите следующим образом: Название плагина : ChangeTemplate

Системные события: OnDocFormRender Plugin кода (PHP) :
 
 
<code><!--?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;
        }
 
      }
    }
  }
}</code>
Теперь создайте эту переменную шаблона: ТВ Имя : 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)
 
Вот и все! Вы можете найти более подробную информацию об этом плагине на этой ветке форума .
 


 
 
 
 






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

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

    Техническая оптимизация сайта

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

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

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

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

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

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

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