Как написать size в pagetitle?

У всех товаров уже заполнены размеры. И для экспорта возникла необходимость прописать эти размеры в pagetitle и longtitle, но никак не получается…
Подскажите, пожалуйста, есть ли такая возможность и как это сделать, если есть?
Фарит
08 декабря 2020, 12:06
modx.pro
546
0

Комментарии: 4

Артур Шевченко
08 декабря 2020, 16:29
+1
$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();
}
Код выполнить в консоли.
    Alexey
    08 декабря 2020, 21:14
    +1
    Нужно ещё учесть, что размеры хранятся в БД в виде массива — prnt.sc/vyflfj
    Поэтому полученное значение желательно распарсить в строку и уже после этого приконтачить к названию:
    $size = $p->get('size');
    $size = implode('_', $size);
    $p->set('pagetitle', $pagetitle . ' ' . $size);
      Фарит
      Фарит
      09 декабря 2020, 01:02
      0
      Большое спасибо.
      А другого способа нет?
      Думал, может как нибудь [[+size]]…
      Дело в том, что размер не нужно добавлять ко всем товарам, но ко всем товарам некоторых разделов.
      Нужно наверно еще выше добавить выборку по конкретным разделам…
        Артур Шевченко
        09 декабря 2020, 10:54
        +1
        Сделай выборку по родителю
        $products = $modx->getColection('msProduct', array('parent' => id'));
        ...
        Или по нескольким
        $products = $modx->getColection('msProduct', array('parent:IN' => [id1,id2,id3]));
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4