marty69 Posted December 8, 2010 Share Posted December 8, 2010 bonjour,dans le header.tpl je cherche à afficher des infos dans le title de la page en fonction de la catégorie ou je me trouve.Je vais essayer d'être clair...j'ai les infos suivantes :Je cherche à faire un test sur la valeur de la variable $categories qui est de type array(4).Le pb c'est qu'il n'y a aucun identifiant pour ces valeurs. Je cherche à savoir si je suis en $categories.0, $categories.1, $categories.2 ou $categories.3 pour afficher $categories.0.name ou $categories.1.name etc...L'idéal serait d'afficher directement $categories.X.name mais comment remplacer ce X par la valeur lue dans le array ? Pour l'instant je fais donc un truc du genre : {if $categories.0}{$categories.0.name|escape:'htmlall':'UTF-8'}{else}{$categories.1.name|escape:'htmlall':'UTF-8'}{/if} ceci ne fonctionne pas, il m'affiche toujours $categories.1.namepour info les variables smarty sont définies comme suit : {$categories} Array (4) 0 => Array (3) id_category => "2" name => "nom1" link_rewrite => "lien1" 1 => Array (3) id_category => "11" name => "nom2" link_rewrite => "lien2" 2 => Array (3) id_category => "13" name => "nom3" link_rewrite => "lien3" 3 => Array (3) id_category => "145" name => "nom4" link_rewrite => "lien4" Merci Link to comment Share on other sites More sharing options...
marty69 Posted December 8, 2010 Author Share Posted December 8, 2010 En fait imaginons la structure suivante :Accueil---- Catégorie A---------sous cat A1---------sous cat A2---------sous cat A3---- Catégorie B---------sous cat B1--------------sous sous cat B11--------------sous sous cat B12---------sous cat B2---------sous cat B3---- Catégorie C---------sous cat C1---------sous cat C2---------sous cat C3En fait si quelqu'un peut me dire comment traduire en smarty :1) "afficher le nom de la catégorie actuelle"autrement dit si on est en B2 afficher le nom de la cat B2si on est sur un produit de A1 afficher le nom de la cat A12) "afficher le nom de la catégorie de niveau 0autrement dit si on est en A2 afficher le nom de la cat Asi on est en C3 afficher le nom de la cat Csi on est en B11 afficher le nom de la cat B Link to comment Share on other sites More sharing options...
Hedrad Posted December 8, 2010 Share Posted December 8, 2010 {if $categories.0}{$categories.0.name|escape:'htmlall':'UTF-8'}{else}{$categories.1.name|escape:'htmlall':'UTF-8'}{/if} Tente plutôt quelque chose comme ça (pas testé, je te note ça comme ça) : {if $categories.id_category == 0} {$categories.name|escape:'htmlall':'UTF-8'} {else} ...{/if} Link to comment Share on other sites More sharing options...
marty69 Posted December 8, 2010 Author Share Posted December 8, 2010 Merci pour la réponse mais ça ne fonctionne pas. J'avais essayé un truc comme ça aussi. Mais comme dis plus haut dans mon post, en fait $categories est un tableau (array) de 4 données (0,1,2,3) et pour chacune de ces données on a un id, un nom, un lien... etcle pb c'est que ces données 0,1,2 et 3 n'ont pas de nom c'est pour cela que j'essaie de teste $categories.0En même temps je me demande si c'est bien la bonne méthode... Link to comment Share on other sites More sharing options...
Hedrad Posted December 8, 2010 Share Posted December 8, 2010 Tu fais peut-être fausse route...Tu veux afficher le nom d'une catégorie si j'ai bien compris.Tu as la variable categories, sous forme de tableau (array) qui reprend toutes les catégories. Mais il doit y avoir une variable category qui prend la catégorie en cours. Pour afficher le nom, category.name ou à l'occasion category.link_rewrite , ca devrait faire l'affaire et ce sera plus simple. Link to comment Share on other sites More sharing options...
marty69 Posted December 8, 2010 Author Share Posted December 8, 2010 oui c'est effectivement ce que j'essaie. Cependant il me faudrait le nom de la catégorie principale, pas celle de la catégorie en cours.Ce n'est peut être pas faisable sans modification du PHP ? Link to comment Share on other sites More sharing options...
Hedrad Posted December 8, 2010 Share Posted December 8, 2010 hum... il faudrait remonter l'arborescence à l'envers, ca pourrait être faisable en smarty mais les temps de calcul risquent d'être long ; mieux vaut une nouvelle fonction php qui gère ça ou ... l'idée de quelqu'un d'autre... bonne chance. Link to comment Share on other sites More sharing options...
marty69 Posted December 9, 2010 Author Share Posted December 9, 2010 Merci pour ton aide Hedrad. Je laisse ce topic ouvert en espérant qu'un vieux routard du code passe par la... 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