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!
Récupérer texte et URL d'un node via le menu
Moderator: jce76350
Re: Récupérer texte et URL d'un node via le menu
J'ai trouvé, je partage ma découverte:
J'ai créé un tpl de menu ainsi:
Qui en sortie me donne
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!
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}
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");
Re: Récupérer texte et URL d'un node via le menu
Flash permet de récupérer très simplement des variables ainsi formatées.will83 wrote: J'ai trouvé, je partage ma découverte:
J'ai créé un tpl de menu ainsi:
Qui en sortie me donneCode: 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}
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!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");
Si ca interesse quelqu'un, qu'il me le dise sur ce topic, je filerai la combine!