s1temaker 24 июня 2015 0 8
Уважаемые знатоки, нужна Ваша помощь
пытаюсь сменить шаблон у всех подчиненных доков в зависимости от того какой шаблон установлен у главной
но что то ничего не происходит,
<?php
if ($modx->event->name == 'OnBeforeDocFormSave') {
    $mainPage = $modx->getObject('modResource',1);
    $mainPageTpl = $mainPage->get('template');

    $q = $modx->newQuery('modResource', array('parent' => 6, 'deleted' => false,));    
    $product = $modx->getIterator('modResource', $q);
    // Меняем шаблон у ресурса
    switch ($mainPageTpl){
        case 1:
            foreach ($product as $prod) {
                $prod->set('template', 3);    
                $prod->save();
            }
            break;
        case 11:
            foreach ($product as $prod) {
                $prod->set('template', 12);    
                $prod->save();
            }
    }
}

8 комментариев
M
MisterN 24 июня 2015г в 21:42 #
Создавать плагин поленился, но в консоли попробовал — вполне рабочий код. Какая-нибудь нелепость наверное. array('parent' => 6 — parent не тот или mainPageTpl отличный от 1 и 11 — типа того наверно косяк.

Вы хотите перебирать все документы у родителя 6 при любом сохранении любого документа, ориентируясь на главную страничку? В чем цель плагина?
s
s1temaker 24 июня 2015г в 22:33 #
Логика всего сайта такая, что у страниц с parent=6 шаблон зависит от шаблона главной, по этому при смене шаблона главной меняем у всех страниц с parent=6 шаблон на соответственный.
M
MisterN 24 июня 2015г в 22:36 #
А почему нет проверки, идет щас обновление главной или других страниц? Плагин же так на любое сохранение работает.
В чем прикол, зачем так менять шаблоны-то? :)
s
s1temaker 24 июня 2015г в 22:37 #
Ну вот так устроено :), шаблон можно менять только у главной
M
MisterN 24 июня 2015г в 21:46 #
Сохранение-то нормально с плагином проходит? А то может у вас там десятки тыщ доков и все обваливается.
s
s1temaker 24 июня 2015г в 22:40 #
Ёмоё, приношу свои извинения, все ведь работает. не пойму что было.
Написал пост, отлучился на пару часов и все заработало, всегда бы так :).
s
s1temaker 24 июня 2015г в 22:41 #
Спасибо всем
s
s1temaker 25 июня 2015г в 22:35 #
Сменил событие на OnDocFormSave, иначе плагин не видит какой новый шаблон установлен.
Может пригодится кому…
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.