Laurent71 Posted July 3, 2009 Share Posted July 3, 2009 Bonjour,J'ai intégré une barre de navigation ds le header.tpl. Quand je suis sur la page d'accueil, il est évidemment actif, mais quand je clique sur un lien par ex panier c'est toujours Accueil qui est actif. Comment faire pour coriger...<!-- Header --> {$HOOK_TOP} Accueil Le marché aux tissus Espace création Votre panier Link to comment Share on other sites More sharing options...
Laurent71 Posted July 3, 2009 Author Share Posted July 3, 2009 pardon j'ai mal intégrer le code <!-- Header --> {$HOOK_TOP} Accueil Le marché aux tissus Espace création Votre panier Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 3, 2009 Share Posted July 3, 2009 BonjourIl faut utiliser un code PHP (désolé en Smarty je sais pas faire !) pour détecter la page en cours. Peut-être existe-t-il d'ailleurs des variables Smarty propres à Prestashop pour savoir où l'on se trouve (c'est fort probable)Par ex. sur la catégorie "Marché aux tissus" on peut voir si la variable Smarty id_category est remplie et égale à 5. Si oui on affiche class="active" au niveau du code HTML du lien. Sinon non.Idem pour les autres liens.Je sais pas si je suis clair Link to comment Share on other sites More sharing options...
Laurent71 Posted July 3, 2009 Author Share Posted July 3, 2009 ça me paraît clair et logique mais au niveau du code php , là je sais pas faire...Merci en tous les cas Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 3, 2009 Share Posted July 3, 2009 Tu peux analyser la présence d'un bout de chaîne de caractères dans l'URL (par ex. "/order.php") et le cas échéant, activer ou non la balise.J'utilise une fonction "maison" : <?php function GetTitle($Base) { // Retourne la classe adéquate le cas échéant selon l'URL en cours // Attention, dépend de la config serveur de l'hébergeur ! $Url = htmlentities($_SERVER['REQUEST_URI']); $Position = strpos($Url, $Base); if(!($Position===false)) { echo ' class="active"'; } } ?> Ensuite, au niveau du code, ça pourrait donner (à l'arrache, vérifier car j'écris ça sans tester) : > ... </pre> <ul> ... Le marché aux tissus ... </ul> <br>.. Remplacer rel="ICI" par ça :<?php GetTitle("category.php?id_category=5");?>Attention, c'est du code PHP, pas Smarty !!!P... de bordel de m... ! Pénible ce forum, on peut jamais poster de code PHP dans la balise Code !!! Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 3, 2009 Share Posted July 3, 2009 Vais péter un câble. 10 minutes pour poster 10 lignes de code qui soient lisibles !!! Link to comment Share on other sites More sharing options...
Laurent71 Posted July 3, 2009 Author Share Posted July 3, 2009 Merci infiniment, je vais essayer et je te tiendrais au courant du résultat... Link to comment Share on other sites More sharing options...
Laurent71 Posted July 3, 2009 Author Share Posted July 3, 2009 J'ai essayé ça ne marche pas. Je m'y suis peut être mal pris.J'ai essayé en plaçant la fonction dans header.php pas de changementet également dans header.tpl là ça me donne une page blancheUne idée ? Link to comment Share on other sites More sharing options...
space Posted July 3, 2009 Share Posted July 3, 2009 Non, ça ne peut pas marcher car tu appelles ta barre de navigation avant qu'elle ne puisse savoir ce qui va être chargé par la suite...Si tu places l'appel de ton fichier dans la page de destination (par ex product.php ou category.php) ça marchera sinon ce n'est pas possible... sauf à bidouiller un module propriétaire comme moi (cf capture) et de shinter le breadcrumb.tpl Cdt Link to comment Share on other sites More sharing options...
Laurent71 Posted July 4, 2009 Author Share Posted July 4, 2009 Bonjour,J'ai suivi les instructions mais tj pas de nav activeOù est ce que je me plante ?code index.php <?php function GetTitle($Base) { // Retourne la classe adéquate le cas échéant selon l'URL en cours // Attention, dépend de la config serveur de l'hébergeur ! $Url = htmlentities($_SERVER['REQUEST_URI']); $Position = strpos($Url, $Base); if(!($Position===false)) { echo ' class="active"'; } } include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $smarty->assign('HOOK_HOME', Module::hookExec('home')); $smarty->display(_PS_THEME_DIR_.'index.tpl'); include(dirname(__FILE__).'/footer.php'); ?> code header.tpl Accueil Le marché aux tissus Espace création Votre panier Link to comment Share on other sites More sharing options...
space Posted July 4, 2009 Share Posted July 4, 2009 et ton header.php ? Link to comment Share on other sites More sharing options...
Laurent71 Posted July 4, 2009 Author Share Posted July 4, 2009 Je n'ai pas toucher au header.php, à priori je dois modifier ou insérer du code... Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 4, 2009 Share Posted July 4, 2009 Attention, le "rel=" ne doit pas être imprimé !C'est vraiment pénible ce forum pour poster du code, ça induit en erreur (Patric si tu passes par là, tu sais ce qu'il te reste à faire :cheese: )< l i > < a h r e f = " i n d e x . p h p " < ? p h p G e t T i t l e ( “ i n d e x . p h p ” ) ; ? > > A c c u e i l < / a > < / l i >Qu'est-ce qu'on n'est pas obligé de faire pour une ligne de code...Si tu veux utiliser ça dans un fichier .tpl, voir avec la balise Smarty {php} Link to comment Share on other sites More sharing options...
Laurent71 Posted July 4, 2009 Author Share Posted July 4, 2009 Merci pour ton aide"Si tu veux utiliser ça dans un fichier .tpl, voir avec la balise Smarty {php}", c'est à dire ?J'ai fait la modif, toujours rien.Aies je bien placé la fonction comme tu peux voir ds le forum plus hautPour te montrer le résultat souhaité rien de mieux qu'une photo et pourquoi c'est important... Link to comment Share on other sites More sharing options...
Laurent71 Posted July 6, 2009 Author Share Posted July 6, 2009 Personne n'a une idée, ça coince et c'est vraiment génant pour la navigationvous pouvez voir sur le sitehttp://www.cousette.com/ 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