Exemplo n.º 1
0
    /**
     * Returns the product attribute combination by id_product_attribute.
     *
     * For PS 1.4 we need to query the combinations manually, while newer version of PS provide a handy getter.
     *
     * @param Product|ProductCore $product the product model.
     * @param int $id_product_attribute the product attribute ID.
     * @param int $id_lang the language ID.
     * @return array the attribute combinations.
     */
    protected function getProductAttributeCombinationsById($product, $id_product_attribute, $id_lang)
    {
        if (_PS_VERSION_ >= '1.5') {
            return $product->getAttributeCombinationsById($id_product_attribute, $id_lang);
        }
        return Db::getInstance()->ExecuteS('
			SELECT pa.*, ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` group_name, al.`name` attribute_name, a.`id_attribute`, pa.`unit_price_impact`
			FROM `' . _DB_PREFIX_ . 'product_attribute` pa
			LEFT JOIN `' . _DB_PREFIX_ . 'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
			LEFT JOIN `' . _DB_PREFIX_ . 'attribute` a ON a.`id_attribute` = pac.`id_attribute`
			LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group`
			LEFT JOIN `' . _DB_PREFIX_ . 'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = ' . (int) $id_lang . ')
			LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = ' . (int) $id_lang . ')
			WHERE pa.`id_product` = ' . (int) $product->id . '
			AND pa.`id_product_attribute` = ' . (int) $id_product_attribute . '
			GROUP BY pa.`id_product_attribute`, ag.`id_attribute_group`
			ORDER BY pa.`id_product_attribute`');
    }