Как написать size в pagetitle?
У всех товаров уже заполнены размеры. И для экспорта возникла необходимость прописать эти размеры в pagetitle и longtitle, но никак не получается…
Подскажите, пожалуйста, есть ли такая возможность и как это сделать, если есть?
Подскажите, пожалуйста, есть ли такая возможность и как это сделать, если есть?
Комментарии: 4
$products = $modx->getColection('msProduct');
foreach($products as $p){
$pagetitle = $p->get('pagetitle');
$longtitle = $p->get('longtitle');
$size = $p->get('size');
$p->set('pagetitle', $pagetitle . ' ' . $size);
$p->set('longtitle', $longtitle . ' ' . $size);
$p->save();
}
Код выполнить в консоли.
Нужно ещё учесть, что размеры хранятся в БД в виде массива — prnt.sc/vyflfj
Поэтому полученное значение желательно распарсить в строку и уже после этого приконтачить к названию:
Поэтому полученное значение желательно распарсить в строку и уже после этого приконтачить к названию:
$size = $p->get('size');
$size = implode('_', $size);
$p->set('pagetitle', $pagetitle . ' ' . $size);
Большое спасибо.
А другого способа нет?
Думал, может как нибудь [[+size]]…
Дело в том, что размер не нужно добавлять ко всем товарам, но ко всем товарам некоторых разделов.
Нужно наверно еще выше добавить выборку по конкретным разделам…
А другого способа нет?
Думал, может как нибудь [[+size]]…
Дело в том, что размер не нужно добавлять ко всем товарам, но ко всем товарам некоторых разделов.
Нужно наверно еще выше добавить выборку по конкретным разделам…
Сделай выборку по родителю
$products = $modx->getColection('msProduct', array('parent' => id'));
...
Или по нескольким$products = $modx->getColection('msProduct', array('parent:IN' => [id1,id2,id3]));
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.