marty69 Posted October 27, 2011 Share Posted October 27, 2011 bonjour ! Comment faire pour limiter l'affichage des catégories du bloc categories ? concrètement j'utilise le menu top de Julien Breux + bloc category de presta en colonne de gauche. Je commence à avoir un paquet de catégories je cherche donc à réorganiser le tout. J'ai pour l'instant 3 grosses catégories principales (filles de la catégorie principale "accueil") quel test réaliser dans le template (j'imagine au niveau du bloc categories) pour n'afficher que la branche complète de la catégorie ou on se trouve ? par exemple : CAT A ----SS-CAT A1 ----SS-CAT A2 CAT B ----SS-CAT B1 ----SS-CAT B2 Si par exemple on est dans SS-CAT A1 je ne veux afficher que la branche CAT A ----SS-CAT A1 ----SS-CAT A2 J'imagine qu'il faut tester quelque un truc du genre : "si on est pas dans la catégorie parente CAT A alors visibility:hidden;" maintenant dans le détail je ne sais pas encore comment procéder un petit aiguillage serait top merci Link to comment Share on other sites More sharing options...
marty69 Posted October 31, 2011 Author Share Posted October 31, 2011 étonné que personne n'aie déja essayé et donc que personne n'ait au moins une piste à suggérer... Link to comment Share on other sites More sharing options...
marty69 Posted November 1, 2011 Author Share Posted November 1, 2011 exemple de l'effet obtenu : www.lesfeescreatives.com merci Link to comment Share on other sites More sharing options...
marty69 Posted November 1, 2011 Author Share Posted November 1, 2011 j'essaie de placer une condition dans le tpl du genre : - récupérer l'id de la catégorie mère actuelle (catégorie de plus haut niveau) - dans la boucle d'affichage des catégories, inclure une condition du type : Pour chaque catégorie, si la catégorie mère n'est pas la catégorie mère actuelle, alors ne pas afficher dans le genre : {if $cat.parent != $cat.mère_actuelle}style="visibility:hidden;"{/if} j'avoue que je ne trouve pas de solution. Ca me semble pourtant accessible facilement (pour peu qu'on touche un peu en dév !) Link to comment Share on other sites More sharing options...
virtualgadjo Posted November 2, 2011 Share Posted November 2, 2011 salut, je n'utilise pas le bloc catégorie mais en y jetant un oeil, je pense que la réponse est dans le tpl category-tree-branch <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link}" {if isset($currentCategoryId) && ($node.id == $currentCategoryId)}class="selected"{/if} title="{$node.desc|escape:html:'UTF-8'}">{$node.name|escape:html:'UTF-8'}</a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if isset($smarty.foreach.categoryTreeBranch) && $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> comme tu peux le voir le truc est récursif, ça affiche d'abord dans les li le lien vers la catégorie et si sous-catégorie il y a une nouvelle ul et rebelote récursivement la réponse à ta question me semble être dans le premier a de la li qui affiche une class selected, attention, les athéniens s'atteignent un grand coup, si $node.id == $currentCategoryId donc, à mon avis, si sur la li, tu fais un truc du genre <li{if isset($last) && $last == 'true'} class="last"{/if}{if $node.id != $currentCategoryId} style="display:none"{/if}> on ne devrait pas être loin de ce que tu cherches à faire display none plutôt que visibility hidden parce que dans ce cas, la place prise par l'élement est toujours occupé, bonjour l'espace blanc have swing Link to comment Share on other sites More sharing options...
marty69 Posted November 2, 2011 Author Share Posted November 2, 2011 Merci virtualgadjo, Cela semble être une piste ceci dit je ne sais pas si c'est vraiment réalisable directement dans le tpl. En effet, il faut quelques tests : - savoir dans quelle catégorie on est - remonter toute l'arborescence pour récupérer la catégorie racine de l'arbre - afficher cette arborescence et cacher les autres. dans mon approche je ne vois que la possibilité de le faire en modifiant le php au préalable pour retourner l'ID de la catégorie racine. Merci pour ton aide en tout cas, à creuser... Link to comment Share on other sites More sharing options...
marty69 Posted November 2, 2011 Author Share Posted November 2, 2011 ok, je crois avoir trouvé. dans blockcategories.php : récupérer la catégorie active $currentCategoryId=Product::getDefaultCategory(intval($_GET['id_product'])); remonter l'arbre pour atteindre la catégorie de niveau 1 : $rootCateg = new Category ($currentCategoryId, intval($params['cookie']->id_lang)); while($rootCateg->id_parent != 1) {$rootCateg=new Category($rootCateg->id_parent, intval($params['cookie']->id_lang));} nettoyer le nom de la catégorie récupérée (supprime le numéro devant la catégorie servant à classer les catégories à l'affichage) $rootCateg->name = Category::hideCategoryPosition($rootCateg-> passer cette variable au moteur smarty $smarty->assign('rootCat', $rootCateg); dans blockcategories.tpl : afficher le nom de la catégorie racine <h4>{$rootCat->name}</h4> PS : Prestashop v 1.3.7 Link to comment Share on other sites More sharing options...
virtualgadjo Posted November 2, 2011 Share Posted November 2, 2011 hello, fais un petit print_r de $blockCategTree.children dans blockcategory.tpl, tu verras tous les noms des categories y figurent, après, ce n'est plus qu'un question de remonter le tableau pour trouver le parent de l'id de la sous-catégorie active (si c'est une catégorie elle est de premier niveau) si tu n'as que des sous-catégories à un niveau c'est assez simple, si tu as plus de sous-niveaux faut juste savoir combien mais à mon avis rien que tu ne puisse faire avec smarty dans le template (quitte, je fais ça quand j'en ai besoin) à créer un plugin pour smarty pour l'occasion have swing Link to comment Share on other sites More sharing options...
virtualgadjo Posted November 2, 2011 Share Posted November 2, 2011 ah je viens de voir que tu as posté dans l'intervalle Link to comment Share on other sites More sharing options...
marty69 Posted November 2, 2011 Author Share Posted November 2, 2011 ok, merci pour la réponse ceci dit ta solution m'intéresse dans le sens ou ca ne toucherai pas le coeur de prestashop. Dans ta solution, si tout est déja dans $blockCategTree.children, cela devrait être possible de pointer directement sur la racine de l'arbre dans cette variable ? du genre "le premier élément de l'arbre" ? Link to comment Share on other sites More sharing options...
marty69 Posted November 2, 2011 Author Share Posted November 2, 2011 si ca intéresse, je joint le module modifié : n'affiche que la branche des catégories (à partir de la catégorie de niveau 1 = sous catégorie de la catégorie "accueil") de la catégorie active. note : testé uniquement sur une version PS 1.3.7 blockcategories_display_by_root.zip Link to comment Share on other sites More sharing options...
virtualgadjo Posted November 2, 2011 Share Posted November 2, 2011 hello, j'arrive un peu tard mais bon, si tu as trouvé un truc qui fonctionne autant rester dessus sinon, oui bien sûr, dès que tu as un array sous la main, tout devient possible en php donc en smarty aussi... d'où je passe mon temps à faire des print_r sur toutes les pages pour voir ce que j'ai sous la main avant d'aller surcharger le code du gros bébé... have swing Link to comment Share on other sites More sharing options...
marty69 Posted November 2, 2011 Author Share Posted November 2, 2011 euh je me sent un peu couillon, j'arrive pas à faire de print_r !? quelle est la syntaxe que tu utilises ? Link to comment Share on other sites More sharing options...
virtualgadjo Posted November 2, 2011 Share Posted November 2, 2011 <pre> {$ziarray|@print_r} </pre> le pre n'est pas obligatoire mais quand le tableau est copieux c'est quand même plus lisible have swing Link to comment Share on other sites More sharing options...
marty69 Posted November 3, 2011 Author Share Posted November 3, 2011 merci, ceci dit c'est bien ce que j'ai fait mais rien en sortie ! faut-il activer le mode debug ? Link to comment Share on other sites More sharing options...
astree Posted November 23, 2011 Share Posted November 23, 2011 Bonjour marty69, Ta solution est bien, j'arrive à la faire marcher sur presta 1.4.4 mais ça ne fonctionne plus quand on arrive sur la page produit. Tu fais comment pour que ça marche sur ces pages là ? merci. Link to comment Share on other sites More sharing options...
marty69 Posted December 2, 2011 Author Share Posted December 2, 2011 Désolé, j'étais un peu occupé ! essayer cette version blockcategories.zip Link to comment Share on other sites More sharing options...
sly Posted December 2, 2011 Share Posted December 2, 2011 Super fonctionne parfaitement ! merci Link to comment Share on other sites More sharing options...
EtapDesign Posted June 1, 2012 Share Posted June 1, 2012 Bonjour, j'ai ajouté le fichier zip que vous avez laissé à la fin du fil de discussion afin de pouvoir afficher des catégories spécifiques selon les pages du menu horizontal. Cependant, suite à son téléchargement dans le back office, le block catégorie se trouvant toujours sur la colonne de gauche n'affiche plus les catégories et sous catégorie... Dans l'attente de vos réponses, car je suis bloqué;.. mon site : http://www.shilton.fr/boutique-en-ligne-shilton/ Cordialement. Link to comment Share on other sites More sharing options...
EtapDesign Posted June 1, 2012 Share Posted June 1, 2012 J'ai essayé de réinitialisé le module catégories...mais les sous-catégories ne s'affichent pas quand même, quelqu'un pourrait m'aider? Link to comment Share on other sites More sharing options...
nicolasroy4 Posted October 3, 2012 Share Posted October 3, 2012 Bonjour, C'est EXACTEMENT ce que je cherche mais ça ne fonctionne pas sous Prestashop 1.5 . Quelqu'un se sent de faire une petite MAJ du module? Ca m'aiderait vraiment. Merci d'avance Link to comment Share on other sites More sharing options...
canel Posted October 26, 2012 Share Posted October 26, 2012 pareil pour moi.... Link to comment Share on other sites More sharing options...
panpate Posted January 31, 2013 Share Posted January 31, 2013 bonjour, je me permet de relancer se poste avez-vous trouver une adaptation de ce module pour la 1.5 ? (après plusieurs jours de recherche je coince un peu) merci ! Link to comment Share on other sites More sharing options...
@markito Posted March 26, 2013 Share Posted March 26, 2013 Bonjour c'est dommage que personne à la solution pour la version 1.5 ? Link to comment Share on other sites More sharing options...
kevin78 Posted December 12, 2013 Share Posted December 12, 2013 Un petit up si jamais quelqu'un a une solution pour la 1.5.4 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