Intra Posted January 7, 2014 Share Posted January 7, 2014 (edited) Bonjour à tous, ebay propose une navigation entre ses catégories produits assez épurée. Je voulais avoir le même principe en utilisant les modules blockcategories (la version modifiée du module Prestashop de programwar voir pièce jointe : blockcategories-master.zip) et blocklayered (navigation à facettes) pour filtrer sur la dernière sous-catégorie. Voilà la solution choisie (pas très propre mais elle fonctionne) : 1 je ne souhaite pas afficher la catégorie de dernier niveau, donc on veut récupérer le niveau de profondeur de chaque catégorie : Modification du fichier /modules/blockcategories/blockcategories.php : - ligne 203 : dans la fonction hookLeftColumn : SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite, c.level_depth FROM `'._DB_PREFIX_.'category` c - ligne 187 : dans la fonction getTree, on rajoute : $return = array('id' => $id_category, [...] 'level_depth'=>$resultIds[$id_category]['level_depth']); Modification du fichier /modules/blockcategories/category-tree-branch.php : {if $node.level_depth!=4} * <li {if isset($last) && $last == 'true'}class="last"{/if}> [...] </li> {/if} option : je ne veux pas afficher le nombre de produits de mes 3 catégories principales : {if $node.level_depth!=4} <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link|escape:'ht[...] {if $count AND $node.id!=1 AND $node.id!=2 AND $node.id!=3}({$node.nbr}){/if} </a> {if $node.children|@cou [...] 2. je souhaite épurer ma liste qui contient trop de catégories : Modification du fichier /themes/montheme/js/tools/treeManagement.js, ligne 57 : $(document).ready(function () { [...] if($('.grower.OPEN').length==0) { $('#categories_block_left').hide(); } $('.grower.CLOSE').parent('li').hide(); $('a.selected').children('li').show(); $('a.selected').parent('li').parent('ul').children('li').children('ul').children('li').show(); } * Ici j'ai choisi volontairement le niveau de sous-catégorie le plus profond à 4 car c'est celui qui revient le plus souvent dans mon catalogue. Une autre solution pourrait être de faire la comparaison avec la profondeur max enregistré dans le module. Ainsi lorsque la profondeur max est atteinte dans le parcours de l'arbre du catalogue, le visiteur va utiliser le module blocklayered (navigation à facettes) pour filtrer plus en profondeur. Si vous avez des suggestions, améliorations, n'hésitez pas, c'est pas forcément optimisé et les hide / show du javascript font un peu barbare. Edited January 7, 2014 by Intra (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts