Превратить ресурсы в товары
Родительский ресурс — коллекция.
Дочерние — обычные документы.
Родительский ресурс надо превратить в каталог минишопа. Тут проблем нет.
Вопрос с дочерними ресурсами, их порядка 100. Открывать каждый и менять тип — так себе затея.
Можно ли скриптом (все дочерние определенного родителя) это сделать, есть варианты?
Дочерние — обычные документы.
Родительский ресурс надо превратить в каталог минишопа. Тут проблем нет.
Вопрос с дочерними ресурсами, их порядка 100. Открывать каждый и менять тип — так себе затея.
Можно ли скриптом (все дочерние определенного родителя) это сделать, есть варианты?
Комментарии: 4
получаете id коллекций, далее ищите ресурсы в парентом = id, затем
resource->set('class_key','msProduct');
resource->save();
нагуглил два варианта:
этот:
Я так понимаю, какая-то устаревшая функция используется? Какая можете подсказать? Не критично, но всё же
этот:
$parent = 2;
$query = $modx->newQuery('modResource');
$query->where(array('parent' => $parent));
$childs = $modx->getCollection('modResource',$query);
foreach ($childs as $child) {
$child->set('class_key','msProduct');
$result = $child->save();
if(!$result){
echo 'Error for id='.$child->get('id');
}
}
echo 'Done!';
и такой, более простой:$parent = 2;
foreach ($modx->getIterator('modResource', array('parent' => $parent)) as $resource) {
$resource->set('class_key','msProduct');
}
Оба работают, но, также, оба в лог высыпают ошибку:(ERROR in modProcessor::run @ /home/s17279/www/core/model/modx/modprocessor.class.php: 177) Flat file processor support is deprecated since version 2.7.0.
Я так понимаю, какая-то устаревшая функция используется? Какая можете подсказать? Не критично, но всё же
Функция не устаревшая, вы используете modx версии 2.7, это переходная версия к 3.X, там метод save и set сделаны по-другому. Чтобы отключить эти предупреждения, установите системную настройку log_deprecated в состоянии выключено.
Дополнение в помощь Batcher
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.