Как автоматически создавать дочерние ресурсы?
У меня есть страница-ресурс «Дом1» у которой всегда будут подразделы «Создание», «Стройка», «Проект»
Я хочу, чтобы при создании «Дом2», «Дом3» и тд. соответствующие дочерние ресурсы создавались не менеджером вручную каждый раз, а сами, автоматически.
Что делать?
Нашел эти плагины, не один не работает:
community.modx-cms.ru/blog/questions/147.html
community.modx-cms.ru/blog/questions/10147.html
Я хочу, чтобы при создании «Дом2», «Дом3» и тд. соответствующие дочерние ресурсы создавались не менеджером вручную каждый раз, а сами, автоматически.
Что делать?
Нашел эти плагины, не один не работает:
community.modx-cms.ru/blog/questions/147.html
community.modx-cms.ru/blog/questions/10147.html
Комментарии: 7
Ну… пишем плагин на OnDocFormSave.
В нем мы делаем проверку на:
1. Что мы сохраняем новый документ
В нем мы делаем проверку на:
1. Что мы сохраняем новый документ
if ($mode == 'new') {
...
}
2. Что наш документ — это Дом, например по шаблону проверяемif($resource->get('template') == XXX)
И создаем дочерние ресурсы, используя $resource->get('id') (да-да, id нового документа у нас уже есть) в качестве parent.$data = array(
'parent' => $resource->get('id'),
'published' => 1,
'pagetitle' => 'Название',
'content' => 'Текст страницы'
);
$modx->runProcessor('resource/create', $data);
Алексей, можете собрать просто готовый код плагина, а то мои самописные кострукции никак не хотят работать
Для этого у нас есть специальный раздел на сайте.
Ща некогда писать и тестировать…
Все ключевое я в комментарии описал, осталось оформить и протестить…
Все ключевое я в комментарии описал, осталось оформить и протестить…
А а почему процессором создаёшь, а не newObject? Или принципиальной разницы нет?
Процессоры вызывают эвенты, да и вообще правила хорошего кода
А, ок, спасибо за разъяснение
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.