24 апр13:34
MODX Массовое обновление TV или другое поле через базу
Теги: Modx, Создание сайтов
Просмотров: 1263
Время прочтения: 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
голосов