Esempio n. 1
0
    /**
     * 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;
    }