Julien64 Posted July 23, 2013 Share Posted July 23, 2013 (edited) Bonjour, Je coince sur une modification qui semble assez annodine à première vue. J'aimerais avoir la possibilité d'afficher les sous-sous catégories de chaque sous-catégorie d'une catégorie Par l'exemple ce sera plus parlant! Mon catalogue est construit de cette manière: - Cat A -- Sous Cat A.1 --- Sous sous Cat A.1.a --- Sous sous Cat A.1.b --- Sous sous Cat A.1.c -- Sous Cat A.2 --- Sous sous Cat A.2.a --- Sous sous Cat A.2.b --- Sous sous Cat A.2.c Actuellement quand je suis sur la page catégorie "Cat A", je vois les 2 sous catégories "Sous Cat A.1" et "Sous Cat A.2" --> fonctionnement normal de PS. Mais j'aimerais afficher sous chacunes de ces 2 sous catégories leurs sous catégories respectives. En fait je voudrais avoir un affichage sur un niveau de profondeur supplémentaire, un peu comme le module "blockcategories". Ma version de Prestashop est la 1.4.11 Je ne suis pas développeur mais je connais quand même le principe de PS donc j'imagine qu'il faut surcharger le controller de la page category pour aller y chercher les infos dont j'ai besoin et les transmettre ensuite au TPL par Smarty... mais quoi écrire dans ce controller??!! Merci! Edited July 25, 2013 by Julien64 (see edit history) Link to comment Share on other sites More sharing options...
herve25 Posted July 24, 2013 Share Posted July 24, 2013 Bonjour, J'ai déjà mis en place cette fonctionnalité sur un site avec prestashop 1.5 La logique devrait donc être similaire à la suivante : <?php class CategoryController extends CategoryControllerCore { /** * Surcharge du contenu pour ajouter les sous-sous Catégories */ public function initContent() { parent::initContent(); //Rajout des information des sous-sous catégories $this->assignSubSubcategories(); } /** * Informations des sous-sous catégories */ protected function assignSubSubcategories() { $subCategories = $this->category->getSubCategories($this->context->language->id); $subsubCategories = array(); foreach ( $subCategories as $subCategory ) { //On charge les sous-catégories pour récupérer leurs sous-catégories $subCat = new Category($subCategory['id_category']); if ( $subCat->getSubCategories($this->context->language->id) ) $subsubCategories[$subCategory['id_category']] = $subCat->getSubCategories($this->context->language->id); } $this->context->smarty->assign('subsubCategories',$subsubCategories); } } ?> Link to comment Share on other sites More sharing options...
Julien64 Posted July 24, 2013 Author Share Posted July 24, 2013 Excellent, merci beaucoup pour votre réactivité! Voila les modifications que j'ai du apporter à votre code pour qu'il fonctionne sur mon PS 1.4 <?php class CategoryController extends CategoryControllerCore { public function process() { parent::process(); $this->assignSubSubcategories(); } protected function assignSubSubcategories() { $subCategories = $this->category->getSubCategories($this->category->id); $subsubCategories = array(); foreach ( $subCategories as $subCategory ) { //On charge les sous-catégories pour récupérer leurs sous-catégories $subCat = new Category($subCategory['id_category']); if ( $subCat->getSubCategories($this->category->id) ) $subsubCategories[$subCategory['id_category']] = $subCat->getSubCategories($this->category->id); } self::$smarty->assign('subsubCategories',$subsubCategories); } } Link to comment Share on other sites More sharing options...
jdo-cecile Posted July 24, 2013 Share Posted July 24, 2013 Bonjour, Pouvez vous m'indiquer quel est le fichier à modifier ? Merci Link to comment Share on other sites More sharing options...
Julien64 Posted July 24, 2013 Author Share Posted July 24, 2013 En fait c'est un fichier à créer dans "override/controllers" et le fichier doit être nommé "CategoryController.php" Ensuite pour récupérer les valeurs dans le TPL, j'ai rajouté un bout de code dans la fichier du thème "category.tpl", juste avant la balise fermante "</li>": <!-- Sous sous catégories --> {foreach from=$subsubCategories item=subsubCategory} {foreach from=$subsubCategory item=subsubOk} {if $subsubOk.id_parent == $subcategory.id_category} <a href="{$link->getCategoryLink($subsubOk.id_category, $subsubOk.link_rewrite)|escape:'htmlall':'UTF-8'}">{$subsubOk.name}</a> {/if} {/foreach} {/foreach} Je ne suis pas sur que le code soit très propre mais ça fonctionne bien chez moi. Après il reste juste à jouer sur les CSS pour avoir l'affichage escompté. Link to comment Share on other sites More sharing options...
mr_zo Posted November 21, 2013 Share Posted November 21, 2013 Bonjour,je suis intéressé par cette fonction .@herve25 pouvez vous me donner le code du tpl pour ressortir les sous sous cat en front office svp ?celui fourni par julien64 ne fonctionne pas sur ma version 1.5.4.1Merci pour votre aide Link to comment Share on other sites More sharing options...
nico6382 Posted October 6, 2014 Share Posted October 6, 2014 Bonjour, en cherchant je suis tombé sur ce topic et il se rapproche dans l'idée à ce que je voudrais faire.. en fait je voudrais simplement afficher les sous catégories dans la page de la catégorie parente lorsque l'on clique dessus plutôt que de tomber sur une page vide marquant il n'y à pas de produits dans cette catégorie.. si vous avez une idée de comment faire, je suis preneur.. merci! Link to comment Share on other sites More sharing options...
furiani Posted December 7, 2014 Share Posted December 7, 2014 Bonjour$ est ce la solution fonctionne aussi pour la version 1.6 car mon catalogue est construit de cette manière:- Cat A-- Sous Cat A.1--- Sous sous Cat A.1.a--- Sous sous Cat A.1.b--- Sous sous Cat A.1.c-- Sous Cat A.2--- Sous sous Cat A.2.a--- Sous sous Cat A.2.b--- Sous sous Cat A.2.c merci 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