name = 'filtervp'; $this->tab = 'front_office_features'; $this->version = '1.0'; parent::__construct(); $this->displayName = $this->l('Filter by size'); $this->description = $this->l('Enable to filter by size in VP.'); } public function install() { if(!parent::install() OR !$this->registerHook('displayLeftVP')) { return FALSE; } return TRUE; } public function hookdisplayLeftVP($params) { global $smarty; $sizes = self::getAllValueAttr(Filtervp::FILTER_ID, Tools::getValue('id_category')); if (empty($sizes)) { $sizes = self::getAllValueAttr(self::FILTER_SIZE, Tools::getValue('id_category')); $name = self::getAttrName(self::FILTER_SIZE); } else { $name = self::getAttrName(self::FILTER_ID); } if($name == 'Tailles') { $name = 'Taille'; }; $smarty->assign(array( 'name' => $name, 'sizes' => $sizes, )); return $this->display(__FILE__, 'filter.tpl'); } public static function getAllValueAttr($id_attr, $id_cat){ global $cookie; $id_lang = $cookie->id_lang; $results = Db::getInstance()->ExecuteS(' SELECT al.`name`, a.`id_attribute` FROM `'._DB_PREFIX_.'attribute` a INNER JOIN '._DB_PREFIX_.'attribute_lang al ON al.id_lang = "'.$id_lang.'" AND al.id_attribute = a.id_attribute INNER JOIN '._DB_PREFIX_.'category_product cp ON cp.id_category = "'.$id_cat.'" LEFT JOIN '._DB_PREFIX_.'product p ON cp.id_product = p.id_product INNER JOIN '._DB_PREFIX_.'product_attribute pa ON pa.id_product = cp.id_product INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_attribute = a.id_attribute AND pac.id_product_attribute = pa.id_product_attribute WHERE a.id_attribute_group = "'.$id_attr.'" GROUP BY a.`id_attribute` ORDER BY al.`name` ASC '); return $results; } public static function getAttrName($id_attr){ global $cookie; $id_lang = $cookie->id_lang; return Db::getInstance()->getValue(' SELECT `public_name` FROM `'._DB_PREFIX_.'attribute_group_lang` WHERE `id_attribute_group` = "'.(int)$id_attr.'" AND `id_lang` = "'.(int)$id_lang.'" '); } }