1. Главная

  2. Блог

  3. MODX Массовое обновление TV или другое поле через базу
  • MODX
  • Разработка сайтов

MODX Массовое обновление TV или другое поле через базу

  • Дата публикации

  • Автор

    Баранов Константин

  • Время чтения

    5 минут

  • Категория

    Кейс

Кейс MODX Массовое обновление TV или другое поле через базу

Введение

Скачиваем и устанавливаем дополнение Console и запускаем там скрипт:

Скрипт массового обновления TV

$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();
}
    

предыдущая статьяследующая статья
Услуги