Как задать шаблон создаваемого документа, исходя из шаблона родительского?
Здравствуйте!
Я работаю с небольшим проектом на MODX Revolution, и хотел бы узнать, как назначать шаблон для создаваемого документа исходя из шаблона родителя.
Более подробно, мне нужно следующее:
Допустим, у нас есть два шаблона: 1 и 2. При создании документа, или при сохранении:
1. Узнать шаблон родителя.
2. Если шаблон родителя имеет номер 1, то создаваемый документ получает шаблон 2.
Я попытался сделать плагин:
Буду благодарен за любую помощь!
Я работаю с небольшим проектом на MODX Revolution, и хотел бы узнать, как назначать шаблон для создаваемого документа исходя из шаблона родителя.
Более подробно, мне нужно следующее:
Допустим, у нас есть два шаблона: 1 и 2. При создании документа, или при сохранении:
1. Узнать шаблон родителя.
2. Если шаблон родителя имеет номер 1, то создаваемый документ получает шаблон 2.
Я попытался сделать плагин:
<?php
$parent = $resource->get('parent');
$parentTpl = $parent->get('template');
if($parentTpl == 1) {
$resource->set('template', 2);
}
Но почему-то не работает. Можете подсказать. как исправить?Буду благодарен за любую помощь!
Комментарии: 6
Можно использовать:
- Inherit Template
- Дополнение Collections, там также можно выставлять шаблон для дочерних
- Написать плагин на OnDocFormRender
- Делать через настройки форм, почему нет?
Спасибо, а можете подсказать?
Я попытался сделать плагин:
Буду благодарен, если подскажете, как исправить
Я попытался сделать плагин:
<?php
$parent = $resource->get('parent');
$parentTpl = $parent->get('template');
if($parentTpl == 1) {
$resource->set('template', 2);
}
И назначить событие OnBeforeDocFormSave, но не сработало.Буду благодарен, если подскажете, как исправить
потому что эта строка
сначала нужно получить объект родителя на основе его id
$parent = $resource->get('parent');
возвращает id родителя, а не объект, поэтому в следующей строке вообще должен быть fatal error$parentTpl = $parent->get('template');
сначала нужно получить объект родителя на основе его id
$parentObj = $modx->getObject(modResource::class, ['id' => $parent]);
а затем уже работать с этим объектом
Спасибо большое!
Можно и так
$parent = $resource->Parent;
удалено
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.