nspace1999 Posted March 20, 2013 Share Posted March 20, 2013 Bonjour, Je m'explique...j'ai modifié mon prestashop pour qu'il fonctionne de la façon suivante .... Quand je clique sur une catégorie, au lieu d'afficher les produits de cette catégorie, j'affiche les logos des marques pour cette catégorie. POurcela j'ai fait un override de la fonction initContent() du CatégoryController comme ci-dessous public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); if (!$this->customer_access) return; /*if (isset($this->context->cookie->id_compare)) $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare)); $this->productSort(); // Product sort must be called before assignProductList() $this->assignScenes(); $this->assignSubcategories(); if ($this->category->id != 1) $this->assignProductList();*/ $this->context->smarty->assign(array( 'category' => $this->category, 'products' => (isset($this->cat_products) && $this->cat_products) ? $this->cat_products : null, 'id_category' => (int)$this->category->id, 'id_category_parent' => (int)$this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'manufacturers' => Manufacturer::getManufacturersByCategory((int)$this->category->id), 'text_list' => Configuration::get('MANUFACTURER_DISPLAY_TEXT'), 'text_list_nb' => Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'), 'form_list' => Configuration::get('MANUFACTURER_DISPLAY_FORM'), 'display_link_manufacturer' => Configuration::get('PS_DISPLAY_SUPPLIERS'), )); } La fonction getManufacturersByCategory est un override de la fonction getManufacturers dont j'ai modifié un poil la requete $sql = 'SELECT m.*, ml.`description`, p.id_product, p.active FROM `'._DB_PREFIX_.'manufacturer` m LEFT JOIN `'._DB_PREFIX_.'product` p ON ( m.`id_manufacturer` = p.`id_manufacturer` ) LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON ( cp.`id_product` = p.`id_product` ) LEFT JOIN `'._DB_PREFIX_.'manufacturer_lang` ml ON ( m.`id_manufacturer` = ml.`id_manufacturer` AND ml.`id_lang` = '.(int)$id_lang.' ) '.Shop::addSqlAssociation('manufacturer', 'm'); if ($active) $sql .= ' WHERE cp.`id_category` = '.$id_category.' AND p.`active` = 1'; $sql .= ' GROUP BY m.id_manufacturer ORDER BY m.`name` ASC'. ($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : ''); La ou je bloque un peu c'est que quand je clique sur une marque, le fonctionnement de prestashop redevient normal, et on obtient la lsite des produits de cette marque toutes catégories confondues, alors que je souhaite afficher jsute les produits d'une catégorie pour la marque cliquée. Je me demande si je fais fausse route des le départ, si il y aurait un moyen plus simple de faire ca....et j'espère avaoir été claire.. Merci pour vos conseils Link to comment Share on other sites More sharing options...
ocverclock Posted April 6, 2013 Share Posted April 6, 2013 tu peux donner le lien du site pour voir le rendu svp Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now