Обнаружил глючек в функции getItemNav. Оказалось, что она не учитывает что след. или предыдущ. товар может быть выключен.
Переписанная мной функция тут:
Переписанная мной функция тут:
public function getItemNav($item_id, $cat_id) { $ordering = $this->inDB->get_field('cms_shop_items_cats', "item_id={$item_id} AND category_id={$cat_id}", 'ordering'); $sql = "SELECT i.id as id, i.seolink as seolink, ic.ordering as ordering, i.title as title FROM cms_shop_items i, cms_shop_items_cats ic WHERE ic.item_id = i.id AND ic.category_id = {$cat_id} AND (ic.ordering < {$ordering}) AND i.published=1 ORDER BY ordering DESC LIMIT 1"; $result = $this->inDB->query($sql); $nav['prev'] = $this->inDB->fetch_assoc($result); $sql = "SELECT i.id as id, i.seolink as seolink, ic.ordering as ordering, i.title as title FROM cms_shop_items i, cms_shop_items_cats ic WHERE ic.item_id = i.id AND ic.category_id = {$cat_id} AND (ic.ordering > {$ordering}) AND i.published=1 ORDER BY ordering LIMIT 1"; $result = $this->inDB->query($sql); $nav['next'] = $this->inDB->fetch_assoc($result); return $nav; }
Реклама #
lokanaft 11 лет назад #
vicoder 11 лет назад #
Bubble Gumoff 11 лет назад #
Антон Самарин 9 лет назад #