damien3000 Posted July 31, 2009 Share Posted July 31, 2009 hello,dans mon site, le menu sous-catégorie disparait quand on passe d'une page catégorie (type category.php?id_category=xx, par ex : http://www.ethnyca.fr/v2/category.php?id_category=4) à une sous-catégorie (type category.php?id_category=xx&parent=yy, ex : http://www.ethnyca.fr/v2/category.php?id_category=16&parent=4)...comment maintenir l'affichage du menu des sous-catégories ? j'ai regardé le code de category.tpl, mais ne vois pas où est la restriction d'affichage...et dans le même esprit, supposons que le client clique ensuite sur un produit, j'aimerai aussi afficher les sous-catégories dans la page produit (http://www.ethnyca.fr/v2/product.php?id_product=361&parent;=).merci pour votre aide,d. Link to comment Share on other sites More sharing options...
probitaille Posted July 31, 2009 Share Posted July 31, 2009 Je sais pas si c'est que tu veux mais il existe une variable pour détecter le niveau de la catégoerie ($catégory->leveldepth je crois).En fait, ce que tu veux faire est possible et prestashop a été conçu pour être flexible mais il va te falloir un peu de programmation SMARTY pour cela.En effet, tu es dans le bon template (category.tpl) c'est là que tu vas mettre tes conditions ex: {if $category->leveldepth==1}affiche le menu principale{/if}Tu devrais voir le code dans category.tpl qui génère ton menu, c'est celui-ci que tu vas devoir collé dans product.tpl. Bien sûr, ce sont les tpl dans le dossier theme.www.emotion-tours.com Va jeter un coup d'oeil sur mon dernier site prestashop, cela va te donner une idée de ce que j'ai fait. (il est pas complet encore) Link to comment Share on other sites More sharing options...
probitaille Posted July 31, 2009 Share Posted July 31, 2009 J'ai oublié un truc, tu peux écrire {debug} pour vérifier tes variables ex: $category->leveldepth (vérifie car je suis pas sur de son orthographe) Link to comment Share on other sites More sharing options...
Swedge Posted July 31, 2009 Share Posted July 31, 2009 A mon avis tu devrais aller voir dans classes/Link.php c'est là que se fait la "construction" des liens. Link to comment Share on other sites More sharing options...
probitaille Posted July 31, 2009 Share Posted July 31, 2009 Hum je ne crois pas qu'aller jouer dans le code php soit une bonne idée pour sa situation, sa question est une question d'affichage et si on reste dans la même logique, c'est dans les templates que cela doit ce jouer.De plus, il ne remets pas en question la construction des liens mais bien l'endroit et les pages où ils sont affichés. Link to comment Share on other sites More sharing options...
Swedge Posted July 31, 2009 Share Posted July 31, 2009 Oui tu as raison j'avais mal compris la question. Link to comment Share on other sites More sharing options...
damien3000 Posted August 1, 2009 Author Share Posted August 1, 2009 hello,merci de vous être penché sur mon pb, ça semble en effet logique que ça se joue dans le tpl.ce qui m'étonne, c'est que dans le code (je ne suis pas développeur, mais parlant anglais et avec qq notions c'est relativement explicite), je ne vois pas quelle est la variable qui limite l'affichage à la page "category" et l'enlève à la page "category&parent;" : {if $category->active} {if isset($subcategories)} <!--préchargement images sous catégorie--> {foreach from=$subcategories item=subcategory} {/foreach} <!-- Subcategories --> {foreach from=$subcategories item=subcategory} getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}&parent={$subcategory.id_parent}" title="{$subcategory.name|escape:'htmlall':'UTF-8'}"> {/foreach} {/if} or je ne vois pas où d'autre ça peut se jouer - à noter que l'affichage des trois catégories est permanent et se fait via le header (donc prise en compte différemment).d. Link to comment Share on other sites More sharing options...
damien3000 Posted August 1, 2009 Author Share Posted August 1, 2009 précision : je viens de faire un test en ajoutant ceci au code pour déterminer ce qu'est la catégorie pour la page (les a- et b- me permettant d'être certain de la variable prise en compte) : {if isset($subcategory.id_parent)} a-{$subcategory.name|escape:'htmlall':'UTF-8'} {else} b-{$category->name|escape:'htmlall':'UTF-8'} {/if} dans tous les cas (page category ou category&parent;), le titre affiché est le b-, c'est à dire que si je suis sur une page bijoux, le titre est "b-bijoux" (épatant, non ? ) et il affiche bien les sous catégories, mais si je suis sur une page bijoux/bagues le titre est "b-bagues" et il n'affiche rien, ce qui est logique puisque dans ce cas il considère que la catégorie est "bagues" et qu'il n'y a donc plus de sous catégories à afficher.reste à contrer cette prise en compte de la "catégorie"... Link to comment Share on other sites More sharing options...
damien3000 Posted August 1, 2009 Author Share Posted August 1, 2009 et c'est - en toute logique - pareil pour les pages produits. Link to comment Share on other sites More sharing options...
probitaille Posted August 2, 2009 Share Posted August 2, 2009 "je ne vois pas quelle est la variable qui limite l’affichage à la page “category” et l’enlève à la page “category&parent;” Dans mon cas, j'ai rajouté une condition qui vérifie si ma catégorie en cours est une catégorie de niveau 1 (si oui affiche le menu) sinon tu ne l'affiche pas.Ce que je comprends, c'est que toi tu cherches où se passe cette condition ? Tu voudrais faire la même chose ?J'aimerais t'aider mais je comprends plus ou moins ton problème. Tu as donc un menu principal que tu as mis dans le header. Il est toujours présent. Maintenant, tu as un sous-menu pour chaque catégorie mais tu aimerais qu'il soit présent partout ? Link to comment Share on other sites More sharing options...
damien3000 Posted August 5, 2009 Author Share Posted August 5, 2009 hello probitaille,ton idée de de condition qui vérifie la catégorie est pas mal - ça pourrait peut être permettre de forcer l'affichage de la sous-catégorie.en fait ce n'est pas moi qui ait mis en place la base du site (regarde là : http://www.prestashop.com/forums/viewthread/22006 pour le début de l'histoire...), et dans le header, tu as un menu avec les 3 catégories principales (plus l'accueil), "en dur", c'est à dire pas générées par prestashop - ce n'est pas la peine, puisqu'il n'y n'aura pas d'autres catégories.les sous-catégories sont a contrario générées par une boucle "foreach", et je souhaiterai en effet qu'elles soient présentent partout : par ex., si je suis sur un produit de la catégorie A, sous catégorie AB, je voudrais voir affichés le menu des catégories A B et C (c'est le cas, via le header), et celui des sous-catégories de la catégorie A (AB, AC, AD,...) - de même si je suis dans la page sous-catégorie A/AB, je souhaiterai que la liste AC, AD, etc. soit affiché.d'un côté je me dis que c'est peut être de la différence d'appel d'affichage que vient le souci, mais alors pourquoi avec le même code (et sans condition apparente) obtient-on une différence entre un affichage "category" et "catégory&parent;" ?ceci dit, je veux bien tester ton idée de condition, si tu est partageux...d. Link to comment Share on other sites More sharing options...
probitaille Posted August 5, 2009 Share Posted August 5, 2009 Oui, en fait, Prestashop détect la catégorie dans laquelle on se retrouve dans le site et détecte son niveau de profondeur (catégorie principal, sous-catégorie,sous-sous-catégorie) ce qui va changer la valeur des variables (category et subcategories) selon la section que tu te trouve et son niveau. C'est pour cela que ton menu change mais que la prog reste la même, seulement, les valeurs des mêmes variables n'est pas la même. <!-- Subcategories --> {foreach from=$subcategories item=subcategory} Le site va essayer de récupérer les sous-catégorie de la catégorie en cours s'il y en a. Bon toi pour ton cas, tu souhaites affichés le menu de toutes les sous-catégories dans celle que tu te trouve (par exemple si tu es dans AB, tu veux voir AA,AC et AD dans ton menu). Là c'est un plus difficile parce que pour une raison d'optimisation, Prestashop ne conserve pas dans ses variables toutes les informations de toutes les catégories. Ce qui veut dire que tu ne peux présentement pas récupérer les informations pour les catégories au même niveau que tu te situe (si tu es dans AB, tu ne pourras pas aller chercher le nom de AA,AC et AD) ex: {foreach from=$categories key=k item=categories } (va te retourner seulement la catégories dans laquelle tu te trouve)Bref, je ne sais pas s'il existe une configuration pour ceci mais je sais que moi, j'ai déjà du contourner un problème du genre en créant de nouvelles variable smarty mais ceci serait assez difficile pour quelqu'un qui n'est pas programmeur.Sinon, un technique un peu plus facile mais beaucoup moins propre pour la programmation serait de faire plusieurs conditions du genre: {if $category->name=='Val Thorens'} Mon Menu {/if} Si tu veux plus de flexibilté car si tu change les noms sa fonctionnera plus, tu devrais y aller par id qui sont inscrit dans le backend {if $category->id=='27'}Et la créer ton menu pour chacun tes sections...hum je crois que j'ai encore mieux pour toi même{if $category->id_parent=='1'} (Si le id de la catégorie parente est 1 (si A=1)) affiche le menu pour toutes les sections dans la catégorie ABon je crois que j'ai donnés toutes les solutions possibles pour ta situation ! J'espère que tu peux te débrouiller avec ce que je viens d'expliquer Link to comment Share on other sites More sharing options...
damien3000 Posted August 5, 2009 Author Share Posted August 5, 2009 tout à fait !élégant en terme de code ça ne sera pas, je suis d'accord avec toi... mais ça fonctionne : je viens de faire un test en insérant : {if $category->id_parent=='4'} test 4 {/if} dans mes pages product et category, et c'est bon, il n'affiche bien "test 4" que dans les pages concernées.il ne me reste plus qu'à faire trois conditions, et à écrire les menus des sous catégories en dur au sein de chacune des trois - a priori simple.et internet en est-t-il à 50 lignes de code prêt ? non, je ne pense pas... ; )merci ! je fais la chose, te tiens au jus, et [résolu] ce flux dès que c'est bon.d. Link to comment Share on other sites More sharing options...
damien3000 Posted August 5, 2009 Author Share Posted August 5, 2009 c'est très mieux !affichage des sous-catégories du menu A ok, même quand on a choisi une sous-catégories (AB...), et idem quand on choisit ensuite un produit (ex : AB-1) depuis celles-ci.mais il reste un dernier truc bizarre : si on passe directement de la catégorie A au produit AB-1, sans passer par une sous-catégorie (AB), il n'affiche pas le sous-menu... pourtant le parent reste le même, non ? Link to comment Share on other sites More sharing options...
probitaille Posted August 5, 2009 Share Posted August 5, 2009 Hum...je me suis jamais pencher sur les variables de catégories dans les produits...tu peux toujours faire ce code: {debug} pour voir toutes les variables pour réaliser tes conditions et voir ce qui se produit pour les catégories. Link to comment Share on other sites More sharing options...
Emmanuel Paris Posted June 10, 2010 Share Posted June 10, 2010 Réponse cool de Rocky à ce problème ici :http://www.prestashop.com/forums/viewthread/57169/ 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