Page 1 of 1
Récupérer texte et URL d'un node via le menu
Posted: Tue Nov 25, 2008 1:44 pm
by will83
Bonjour,
Je suis face à une colle. Les différents items du menu sont repérés par un ID apparemment.
Comment est il possible de sortir, séparément (en 2 tags par exemple), l'URL d'une part, et le texte du menu d'autre part d'un élément avec un ID en particulier? (du genre: {menu id="1" sortie="menutext"} et {menu id="1" sortie="menutext"}
J'ai pensé à faire des templates de menu pour chacun de mes items de premier niveau pour les appeler dans une balise {menu template=""}. Mais ce n'est pas simple et complètement statique à terme.
Merci pour vos idées et solutions, s'il y en a!
Re: Récupérer texte et URL d'un node via le menu
Posted: Tue Nov 25, 2008 10:11 pm
by will83
J'ai trouvé, je partage ma découverte:
J'ai créé un tpl de menu ainsi:
Code: Select all
{foreach from=$nodelist item=node}
{if $node->depth < 2 && $node->hierarchy < 2 && $node->hierarchy > 0}
so.addVariable("_URL{$node->hierarchy}_", "{$node->url}");
{/if}
{if $node->depth < 2 && $node->hierarchy < 7 && $node->hierarchy > 1}
so.addVariable("_URL{$node->hierarchy}_", "{$node->url}");
so.addVariable("_title{$node->hierarchy}_", "{$node->menutext|upper|replace:'é':'E'|replace:'è':'E'|replace:'à':'A'}");
{/if}
{/foreach}
Qui en sortie me donne
Code: Select all
so.addVariable("_URL1_", "http://.../fr_FR/home");
so.addVariable("_title1_", "Retour à l'accueil");
so.addVariable("_URL2_", "http://.../fr_FR/societe");
so.addVariable("_title2_", "LA SOCIETE");
so.addVariable("_URL3_", "http://.../fr_FR/metiers");
so.addVariable("_title3_", "NOS METIERS");
so.addVariable("_URL4_", "http://.../fr_FR/references");
so.addVariable("_title4_", "NOS REFERENCES");
so.addVariable("_URL5_", "http://.../fr_FR/nos-produits");
so.addVariable("_title5_", "NOS PRODUITS");
so.addVariable("_URL6_", "http://.../fr_FR/shooting");
so.addVariable("_title6_", "SHOOTING");
Pour comprend exactement l'intérêt, je précise que mon menu de premier niveau est généré en flash et ce petit bout de code me permet de le rendre dynamique (du moins en ce qui concerne la mise à jour des titres et des URL. A terme avec un système de comptage, je compte pouvoir rendre dynamique le nombre d'item dans le menu, mais n'étant pas expert en flash, ca attendra!
Re: Récupérer texte et URL d'un node via le menu
Posted: Tue Nov 25, 2008 10:14 pm
by will83
will83 wrote:
J'ai trouvé, je partage ma découverte:
J'ai créé un tpl de menu ainsi:
Code: Select all
{foreach from=$nodelist item=node}
{if $node->depth < 2 && $node->hierarchy < 2 && $node->hierarchy > 0}
so.addVariable("_URL{$node->hierarchy}_", "{$node->url}");
{/if}
{if $node->depth < 2 && $node->hierarchy < 7 && $node->hierarchy > 1}
so.addVariable("_URL{$node->hierarchy}_", "{$node->url}");
so.addVariable("_title{$node->hierarchy}_", "{$node->menutext|upper|replace:'é':'E'|replace:'è':'E'|replace:'à':'A'}");
{/if}
{/foreach}
Qui en sortie me donne
Code: Select all
so.addVariable("_URL1_", "http://.../fr_FR/home");
so.addVariable("_title1_", "Retour à l'accueil");
so.addVariable("_URL2_", "http://.../fr_FR/societe");
so.addVariable("_title2_", "LA SOCIETE");
so.addVariable("_URL3_", "http://.../fr_FR/metiers");
so.addVariable("_title3_", "NOS METIERS");
so.addVariable("_URL4_", "http://.../fr_FR/references");
so.addVariable("_title4_", "NOS REFERENCES");
so.addVariable("_URL5_", "http://.../fr_FR/nos-produits");
so.addVariable("_title5_", "NOS PRODUITS");
so.addVariable("_URL6_", "http://.../fr_FR/shooting");
so.addVariable("_title6_", "SHOOTING");
Pour comprend exactement l'intérêt, je précise que mon menu de premier niveau est généré en flash et ce petit bout de code me permet de le rendre dynamique (du moins en ce qui concerne la mise à jour des titres et des URL. A terme avec un système de comptage, je compte pouvoir rendre dynamique le nombre d'item dans le menu, mais n'étant pas expert en flash, ca attendra!
Flash permet de récupérer très simplement des variables ainsi formatées.
Si ca interesse quelqu'un, qu'il me le dise sur ce topic, je filerai la combine!