Поменять картинки местами
На сайте очень много товаров и две первые картинки у всех них расположены не в правильном порядке. Возможно ли поменять их местами программным способом в цикле joxi.ru/LmGEV7kteglqDA?
Комментарии: 3
у картинок есть поле rank отвечающее за порядок
$pics = $modx->getCollection('msProductFile', ['parent' => 0]);
foreach($pics as $pic) {
$arr[$pic->toArray()['product_id']][] = $pic->toArray()['url'];
}
$vv;
foreach($arr as $k=>$ar){
if(count($ar) > 1){
$vv[$k] = array_reverse(array_slice($ar, 0, 2));
}else{
continue;
}
}
foreach($pics as $pic) {
if(!($vv[$pic->toArray()["product_id"]][0])) continue;
$pic->set('url',$vv[$pic->toArray()["product_id"]][0]);
$pic->save();
if($bb = $vv[$pic->toArray()["product_id"]][0]){
$vv[$pic->toArray()["product_id"]][0] = $vv[$pic->toArray()["product_id"]][1];
}
}
написал такой скрипт мож кому пригодиться
Если нужно всего одно поле, то
Будет быстрее.
$pic->toArray()['url']
лучше заменить на $pic->get('url')
Будет быстрее.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.