Навигация по каталогу статей
Вывод товаров из сопутствующего бренда
Вывод товара из сопутствующего бренда на странице карточки товара.
Редактируем файл:
\api\Brands.php
После функции
public function get_brand($id) { if(is_int($id)) $filter = $this->db->placehold('id = ?', $id); else $filter = $this->db->placehold('url = ?', $id); $query = "SELECT id, name, url, meta_title, meta_keywords, meta_description, description, image FROM __brands WHERE $filter ORDER BY name LIMIT 1"; $this->db->query($query); return $this->db->result(); }
вставляем:
/* * * Функция возвращает бренд по продукту id или url * (в зависимости от типа аргумента, int - id, string - url) * @param $id id или url поста * */ public function get_brand_pr($id) { if(!is_int($id)) $filter = $this->db->placehold('id = ?', $id); else $filter = $this->db->placehold('url = ?', $id); $query = "SELECT brand_id, id, url, name, position, meta_title FROM __products WHERE $filter LIMIT 1"; $this->db->query($query); return $this->db->result(); }
далее, находим в файле:
\view\ProductView.php
$this->design->assign('related_products', $related_products); }
после сразуже вставляем:
else { // генерируемые связанные товары $products->brands = $this->brands->get_brand_pr($product->id); $brandy = reset($products->brands); $related_products = array(); $after = false; $products = $this->products->get_products(array('brand_id' => $brandy, 'limit' => 100, 'in_stock'=>1, 'visible'=>1)); foreach($products as $p) { if($after && count($related_products) < 6) $related_products[$p->id] = $p; elseif($p->id == $product->id) $after = true; } if(count($related_products) < 6) foreach($products as $p) if($p->id != $product->id && count($related_products) < 6) $related_products[$p->id] = $p; else break; $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products))); foreach($related_products_images as $related_product_image) if(isset($related_products[$related_product_image->product_id])) $related_products[$related_product_image->product_id]->images[] = $related_product_image; $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'instock'=>true)); foreach($related_products_variants as $related_product_variant) { if(isset($related_products[$related_product_variant->product_id])) { $related_product_variant->price *= (100-$discount)/100; $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant; } } foreach($related_products as $r) { $r->image = &$r->images[0]; $r->variant = &$r->variants[0]; } $this->design->assign('related_products', $related_products); } // end: генерируемые связанные товары
И вс,, должно вс, работать
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, авторизуйтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, авторизуйтесь или зарегистрируйтесь для голосования.
Пожалуйста, авторизуйтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.