24 апр13:34
MODX Массовое обновление TV или другое поле через базу
Теги: Modx, Создание сайтов
Просмотров: 2416
Время прочтения: 3 минуты.
Навигация по статье:
Скачиваем и устанавливаем дополнение Console и запускаем там скрипт:
$q = $modx->newQuery('modResource');
// 25 - это ID дополнительного поля.
// Через $q->leftJoin(...) мы подключаем к выборке доп. поля
$q->leftJoin('modTemplateVarResource', 'TV25', 'modResource.id = TV25.contentid AND TV25.tmplvarid = 25');
$q->where(array(
// Тут можно настроить условия выборки. Можно либо строкой, либо массивом с добавлением ":IN"
//'modResource.pagetitle:IN' => array(2),
'TV25.value' => "Karelia Upoflor"
));
$q->select(array(
'modResource.id as id'
,'modResource.menutitle as menutitle'
,'TV25.value as TV25_value'
));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
//print_r($res);
foreach($res as $v){
$res = $modx->getObject('modResource', $v['id']);
$res->setTVValue('anketa_manufacturer','Karelia');
$res->save();
}
Рейтинг: 5/5 - 2
голосов