/** * Get all products of this scene * * @return array Products */ public function getProducts($only_active = true, $id_lang = null, $lite_result = true, Context $context = null) { if (!Scene::isFeatureActive()) { return array(); } if (!$context) { $context = Context::getContext(); } $id_lang = is_null($id_lang) ? $context->language->id : $id_lang; $products = Db::getInstance()->executeS(' SELECT s.* FROM `' . _DB_PREFIX_ . 'scene_products` s LEFT JOIN `' . _DB_PREFIX_ . 'product` p ON (p.id_product = s.id_product) ' . Shop::addSqlAssociation('product', 'p') . ' WHERE s.id_scene = ' . (int) $this->id . ($only_active ? ' AND product_shop.active = 1' : '')); if (!$lite_result && $products) { foreach ($products as &$product) { $product['details'] = new Product($product['id_product'], !$lite_result, $id_lang); $product['link'] = $context->link->getProductLink($product['details']->id, $product['details']->link_rewrite, $product['details']->category, $product['details']->ean13); $cover = Product::getCover($product['details']->id); if (is_array($cover)) { $product = array_merge($cover, $product); } } } return $products; }