Forum CMS Made Simple FR

Version complète : [RESOLU]Configuration d'un menu
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

lemirandais

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS -MLE- : ?
#~ Nom de l'hébergeur : localhost
#~ Informations Système :
#~ Version du CMS
#~ 1.8.2
#~ Modules installés
#~ CMSMailer
#~ 2.0
#~ FileManager
#~ 1.0.2
#~ MenuManager
#~ 1.6.5
#~ ModuleManager
#~ 1.4
#~ News
#~ 2.10.6
#~ nuSOAP
#~ 1.0.2
#~ Printing
#~ 1.1.0
#~ Search
#~ 1.6.5
#~ ThemeManager
#~ 1.1.1
#~ TinyMCE
#~ 2.7.3
#~ Album
#~ 0.9.3
#~ GoogleMaps
#~ 0.1.8
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

Bonjour à tous,

Je souhaite faire un menu spécifique sur un de mes projets.
Voila le menu que je souhaite obtenir:
Citation :<ul id="topnav">
<li><a href="#">Link</a></li>
<li>
<a href="#">Link</a>
<!--Subnav Starts Here-->
<span>
<a href="#">Subnav Link</a> |
<a href="#">Subnav Link</a> |
<a href="#">Subnav Link</a>
</span>
<!--Subnav Ends Here-->
</li>
<li><a href="#">Link</a></li>
</ul>
actuellement je suis à ce niveau:
Citation :<ul id="topnav">
<li class="menuactive">
<a class="menuactive" href="http://127.0.0.1/">Accueil</a>
</li>
<li class="menuparent">
<a class="menuparent" href="http://127.0.0.1/fr/sejours.html">Séjours</a>
<span>
<li>
<a href="http://127.0.0.1/fr/sejours/pyrenees.html">Pyrénées</a>
</li>
<li>
<a href="http://127.0.0.1/fr/sejours/pyreneens-d-ailleurs.html">Pyrénéens d'ailleurs</a>
</li>
<li>
<a href="http://127.0.0.1/fr/sejours/groupes-associations-collectivites.html">Groupes, associations, collectivités</a>
</span>
</li>
<li class="menuparent">
<a class="menuparent" href="http://127.0.0.1/fr/concept.html">Concept</a>
<span>
<li>
<a href="http://127.0.0.1/fr/concept/partenaires.html">Partenaires</a>
</span>
</li>
<li>
<a href="http://127.0.0.1/fr/demande-de-devis.html">Demande de devis</a>
</li>
<li>
<a href="http://127.0.0.1/fr/contact.html">Contact</a>
</li>
<li>
<a href="http://127.0.0.1/fr/fraisdossier.html">Frais de dossier</a>
</li>
<li>
<a href="http://127.0.0.1/fr/conditions-generales-de-vente.html">Conditions générales de vente</a>
</li>
<li>
<a href="http://127.0.0.1/fr/votre-galerie.html">Votre galerie</a>
</li>
<li>
<a href="http://127.0.0.1/fr/mentions-legales.html">Mentions légales</a>
</li>
</ul>
Je suis en train d'essayer de me modifier le gabarit du menu, mais je ne vois pas où je dois ou quoi modifier pour obtenir le menu désiré, voici le code du menu actuel.
Si quelqu'un verrait où est mon erreur, merci de me le dire:
Citation :{if $count > 0}
<div id="menuwrapper">
<ul id="topnav">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<span>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</span>' times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent">
<a class="menuactive menuparent" {elseif $node->current == true}
<li class="menuactive">
<a class="menuactive" {elseif $node->haschildren == true}
<li class="menuparent">
<a class="menuparent" {elseif $node->type == 'sectionheader' and $node->haschildren == true}
{elseif $node->type == 'separator'}
{else}
<li>
<a {/if}
{if $node->type != 'sectionheader' and $node->type != 'separator'}
{if $node->target}target="{$node->target}" {/if}
href="{$node->url}">{$node->menutext}</a>
{elseif $node->type == 'sectionheader'}
><span class="sectionheader">{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}

Merci d'avance.
lemirandais
2 niveaux seulement ?

lemirandais

Oui, en fait si vous préférez, j'ai fait un menu en html en "dur" mais je ne vois pas comment le faire en smarty.
Je n'ai pas testé, regarde ceci et donne-moi le résultat en html
Code :
{if $count > 0}
<div id="menuwrapper">
<ul id="topnav">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<span>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</span></li>' times=$node->prevdepth-$node->depth}
{elseif $node->index > 0}</li>
{/if}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent"><a class="menuactive menuparent"
{elseif $node->current == true}<a class="menuactive"
{else}<a {/if}
{if $node->type != 'sectionheader' and $node->type != 'separator'}
href="{$node->url}">{$node->menutext}</a>
{/if}
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}

lemirandais

Voici le résultat

Code :
<ul id="topnav">
<a class="menuactive"
href="http://dev.voyage-pyrenees.com/">Accueil</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/sejours.html">Séjours</a>
<span>
<a href="http://dev.voyage-pyrenees.com/fr/sejours/pyrenees.html">Pyrénées</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/sejours/pyreneens-d-ailleurs.html">Pyrénéens d'ailleurs</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/sejours/groupes-associations-collectivites.html">Groupes, associations, collectivités</a>
</span></li>
<a href="http://dev.voyage-pyrenees.com/fr/concept.html">Concept</a>
<span>
<a href="http://dev.voyage-pyrenees.com/fr/concept/partenaires.html">Partenaires</a>
</span></li>
<a href="http://dev.voyage-pyrenees.com/fr/demande-de-devis.html">Demande de devis</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/contact.html">Contact</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/fraisdossier.html">Frais de dossier</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/conditions-generales-de-vente.html">Conditions générales de vente</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/votre-galerie.html">Votre galerie</a>
</li>
<a href="http://dev.voyage-pyrenees.com/fr/mentions-legales.html">Mentions légales</a>

</li>
</ul>
Il manque a premier coup d'oeil le li de départ et les LI dans les spans qui ne sont pas utile.
Je vais me créer quelques pages, ce sera plus facile Wink
Je te dis quoi.

lemirandais

Merci pour votre aide.

Sur mon code plus haut, il y avait dans les <span> des LI alors qu'il ne les falait pas.
Je pense que je ne dois pas être trop loin, mais je vois pas comment résoudre mon soucis, merci encore.
Code :
{strip}
{if $count > 0}
<ul class="topnav">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<!--Subnav Starts Here--><span>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="<!--Subnav Ends Here--></span></li>" times=$node->prevdepth-$node->depth}
{elseif $node->index > 0 && $node->depth==1}</li>
{/if}
{if $node->depth == 1}
<li> <a href="{$node->url}" class="parent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>
{else}
<a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} |</a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
{/strip}
Si tu tiens à ce qu'il n'aie pas "|" au dernier lien du 2e niveau, tu le dis.

lemirandais

Merci petite question malgré que mon problème est résolu, Que signifie strip?
Cela nettoie le code html des espaces (la page est moins lourde à charger).
http://www.smarty.net/manual/fr/language....strip.php