AFI Опубликовано 8 января, 2017 Жалоба Поделиться Опубликовано 8 января, 2017 Добрый день, сделал сортировку от большего к меньшему и наоборот. Но, теперь в админке товар не сортируется как раньше (по position/дате создания).Подскажите, что я сделал не так и как вернуть сортировку в админку.Код который я изменил view/ProductsView.phpДобавил if ($this->request->get('direction', 'string')) $filter['direction'] = $this->request->get('direction', 'string'); else $filter['direction'] = 'desc'; $this->design->assign('direction', $filter['direction']); api/Products,php if(!empty($filter['sort'])) switch ($filter['sort']) { case 'position': $order = 'p.position'; break; case 'name': $order = 'p.name'; break; case 'created': $order = 'p.created'; break; case 'price': $order = 'pv.price IS NULL, pv.price=0, pv.price'; $order = '(SELECT -pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)'; break; } if(!empty($filter['sort'])){ $order = 'IF(v.stock < 1,1,0),'.$order; $group_by = 'GROUP BY p.id'; $products_stock_null_sort = 'INNER JOIN __variants v ON p.id = v.product_id'; } if(!empty($filter['direction']) && $filter['sort'] != 'price') { switch ($filter['direction']) { case 'asc': $direction = ''; break; case 'desc': $direction = 'DESC'; break; } } elseif (!empty($filter['direction']) && $filter['sort'] == 'price') { switch ($filter['direction']) { case 'desc': $direction = ''; break; case 'asc': $direction = 'DESC'; break; } } После строкLEFT JOIN __brands b ON p.brand_id = b.idдобавил$products_stock_null_sortORDER BY $orderдобавил$direction Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.