Jump to content

[ASTUCE] Navigation épurée avec un blockcategories 'light'


Intra

Recommended Posts

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 by Intra (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...