[MODX] Массово обновить ТВ, или другое поле через базу

Скачиваем дополнение Console, и запускаем там скрипт (раскомментить блок с внесением изменений)

Может быть полезным от эта страничка еще — Соответствие названия классов с названиями таблиц в MySQL

$q = $modx->newQuery('modResource');
// 27 - это ID дополнительного поля.
// Через $q->leftJoin(...) мы подключаем к выборке доп. поля
$q->leftJoin('modTemplateVarResource', 'TV27', 'modResource.id = TV27.contentid AND TV27.tmplvarid = 27');
$q->where(array(
  // Тут можно настроить условия выборки. Можно либо строкой, либо массивом с добавлением ":IN"
  //'modResource.pagetitle:IN' => array(2),
  'TV27.value' => "Karelia Upoflor"
));
$q->select(array(
  'modResource.id as id'
  ,'modResource.menutitle as menutitle'
  ,'TV27.value as TV27_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();
}
*/

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

Похожие статьи

Наш сайт использует куки, нажмите «ОК» если вы не против
OK