Как задать шаблон создаваемого документа, исходя из шаблона родительского?

Здравствуйте!
Я работаю с небольшим проектом на MODX Revolution, и хотел бы узнать, как назначать шаблон для создаваемого документа исходя из шаблона родителя.
Более подробно, мне нужно следующее:
Допустим, у нас есть два шаблона: 1 и 2. При создании документа, или при сохранении:
1. Узнать шаблон родителя.
2. Если шаблон родителя имеет номер 1, то создаваемый документ получает шаблон 2.
Я попытался сделать плагин:
<?php
$parent = $resource->get('parent');
$parentTpl = $parent->get('template');

if($parentTpl == 1) {
  $resource->set('template', 2);
}
Но почему-то не работает. Можете подсказать. как исправить?
Буду благодарен за любую помощь!
Kiten
29 марта 2020, 15:46
modx.pro
660
0

Комментарии: 6

Андрей
29 марта 2020, 15:56
+1
Можно использовать:
  1. Inherit Template
  2. Дополнение Collections, там также можно выставлять шаблон для дочерних
  3. Написать плагин на OnDocFormRender
  4. Делать через настройки форм, почему нет?
    Kiten
    29 марта 2020, 16:16
    0
    Спасибо, а можете подсказать?
    Я попытался сделать плагин:
    <?php
    $parent = $resource->get('parent');
    $parentTpl = $parent->get('template');
    
    if($parentTpl == 1) {
      $resource->set('template', 2);
    }
    И назначить событие OnBeforeDocFormSave, но не сработало.
    Буду благодарен, если подскажете, как исправить
      Артем
      29 марта 2020, 16:30
      +1
      потому что эта строка
      $parent = $resource->get('parent');
      возвращает id родителя, а не объект, поэтому в следующей строке вообще должен быть fatal error
      $parentTpl = $parent->get('template');

      сначала нужно получить объект родителя на основе его id
      $parentObj = $modx->getObject(modResource::class, ['id' => $parent]);
      а затем уже работать с этим объектом
        Kiten
        29 марта 2020, 16:47
        0
        Спасибо большое!
          Сергей Шлоков
          29 марта 2020, 17:47
          +2
          Можно и так
          $parent = $resource->Parent;
      Kiten
      29 марта 2020, 16:11
      0
      удалено
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6