Forum CMS Made Simple FR
[Résolu]Histoire de menus - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : [Résolu]Histoire de menus (/thread-63.html)



[Résolu]Histoire de menus - soubri - 02/01/2010

Bonjour,

J'ai commencé à créer un site et aimerais le convertir en CMS à l'aide de CMSMS (que je trouve vraiment sympa).

Mais je me heurte à un problème avoir visionné l'excellente vidéo expliquant comment convertir un site: les menus.

J'aimerais savoir s'il me sera possible de créer un menu identique que celui de mon site (la partie menu de gauche):
http://www.alternative-liege.be

Merci de vos aides


[Résolu]Histoire de menus - jce76350 - 03/01/2010

re,

tu peux tout faire !!! c'est une question de gabarit et de CSS
pour information http://themes.cmsmadesimple.org/


[Résolu]Histoire de menus - soubri - 03/01/2010

jce76350 a écrit :re,

tu peux tout faire !!! c'est une question de gabarit et de CSS
pour information http://themes.cmsmadesimple.org/
Bonsoir,

Merci bien mais le site que je cite est le mien que j'ai codé en dur et que j'aimerais bien convertir. Tout est ok sauf la partie du menu de gauche...


[Résolu]Histoire de menus - jce76350 - 03/01/2010

re,

>Tout est ok sauf la partie du menu de gauche...
comme indiqué plus haut,
tu prends ta souris d'une main, et de l'autre le clavier et tu construis tes menus


[Résolu]Histoire de menus - soubri - 03/01/2010

jce76350 a écrit :re,

>Tout est ok sauf la partie du menu de gauche...
comme indiqué plus haut,
tu prends ta souris d'une main, et de l'autre le clavier et tu construis tes menus
Pour bien se faire comprendre, voila ce que ça donne quand j'ai convertit:
http://alternative-liege.be/forum/capt.jpg

ce qui est bien différent de ce que je recherche:
http://www.alternative-liege.be

Merci
Wink


[Résolu]Histoire de menus - bess - 04/01/2010

tes pages sont mal hiérarchisées j'ai l'impression. Ce n'est plus un pb de design mais d'ordonnancement de tes pages !


[Résolu]Histoire de menus - soubri - 04/01/2010

bess a écrit :tes pages sont mal hiérarchisées j'ai l'impression. Ce n'est plus un pb de design mais d'ordonnancement de tes pages !
C'est ce que je pense aussi, et je n'arrive pas à appliquer ce que je veux.
Au fait il y a plusieurs sections:
1 l'accueil comprenant la présentation + autres pages;
2 les asbl regroupant les asbl de l'association;
3 les partenaires participants au fonctionnement de l'institution;

mais petit à petit, je commence à me comprendre Wink

Merci


[Résolu]Histoire de menus - soubri - 04/01/2010

Je refonds un peu une partie du site et vous tiens au courant car en chipotant un peu dans le gestionnaire des menus j'ai peut-être trouvé une solution.
je vous tiens au courant;

Merci

Néanmoins, toute idée est la bienvenue en attendant...


[Résolu]Histoire de menus - soubri - 04/01/2010

Voilà où j'en suis:
http://alternative-liege.be/forum/capt2.jpg

Fatigué, j'arrête!

Bonne nuit...


[Résolu]Histoire de menus - kraygoon - 04/01/2010

Hiérarchises tes pages de la manières suivantes :

Accueil
* Présentation
* Contact

Les ASBL
* Récré du coeur
* Vieillir et vivre l'avenir
* Alternative Liège
* Amercoeur Services

Les partenaires
* Retrouver nos partenaires

De cette façon tu pourras créer un menu CMSMS qui correspond à ce que tu souhaites.
Ca devrait se traduire par un truc du genre :

Code :
<ul id="menu">
<li class="accueil">Accueil
<ul>
<li><a href="">Présentation</a></li>
<li><a href="">Contact</a></li>
</ul>
</li>
<li class="absl">Les ASBL
<ul>
<li><a href="">Récré du coeur</a></li>
<!-- Etc Etc -->
</ul>
</li>
</ul>



[Résolu]Histoire de menus - soubri - 04/01/2010

kraygoon a écrit :Hiérarchises tes pages de la manières suivantes :

Accueil
* Présentation
* Contact

Les ASBL
* Récré du coeur
* Vieillir et vivre l'avenir
* Alternative Liège
* Amercoeur Services

Les partenaires
* Retrouver nos partenaires

De cette façon tu pourras créer un menu CMSMS qui correspond à ce que tu souhaites.
Ca devrait se traduire par un truc du genre :
OK! pour ça.
En ce qui concerne le codage html, ça passe mais comme je m'initie au smarty, ne dois-je pas modifier au sein du script la hierarchisation;
En esperant me faire comprendre, ne dois-je pas créer une boucle qui attribue les class accueil, asbl, et partenat aux <li>?

Suis-je compréhensif.
Voici le code du menu:
Code :
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul>' 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>
<a {elseif $node->current == true}
<li>
<a {elseif $node->haschildren == true}
{*<li class="menuparent">*}
<a {elseif $node->type == 'sectionheader' and $node->haschildren == true}
<li>{$node->menutext}{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_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'}
>{$node->menutext}</a>
{/if}
Merci


[Résolu]Histoire de menus - bess - 04/01/2010

brut de fonderie et sans aucun test de ma part, réalise la hierarchie de tes page en préparant 3 'sectionheader' dans l'ordonnancement de tes pages en leur appliquant à chacune un attribut unique dans les options de la page : "Attribut supplémentaire 1 de la page :"

par exemple on peut penser à
-accueil
-asbl
-partenaire

ensuite ton code du menu d'origine doit être modifié de ce côté :

Citation :{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul>' 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>
<a {elseif $node->current == true}
<li>
<a {elseif $node->haschildren == true}
{*<li class="menuparent">*}
<a {elseif $node->type == 'sectionheader' and $node->haschildren == true}
<li class="{$node->extra1}">{$node->menutext}{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_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'}
>{$node->menutext}</a>
{/if}
alors je suis pas certain de {$node->extra1} mais je doit pas être loin...

une fois trouvé il te resteras à affecter du CSS à chacune des 3 classes.


[Résolu]Histoire de menus - soubri - 04/01/2010

Je ne comprends pas très bien le "extra1"...

Merci


[Résolu]Histoire de menus - kraygoon - 05/01/2010

Le "extra1" correspondrait à "Attribut supplémentaire 1 de la page".

Mais comme le dit Bess, il n'est pas certain que ce soit ce nom de variable.

Tu sais Soubri, on pourrait prendre un peu plus de temps et te pondre ton code, mais au final que va-t-il se passer ? Tu n'auras rien compris à ce qu'on te file et tu resteras trop dépendant.

Alors que si tu te renseignes un tout petit peu, pas plus de 15 minutes sur Google, tu apprendras toutes les subtilités de la création de menus sous CMSMS, et là tu te rendras compte de toutes les possibilités ;-)


[Résolu]Histoire de menus - soubri - 05/01/2010

kraygoon a écrit :Le "extra1" correspondrait à "Attribut supplémentaire 1 de la page".

Mais comme le dit Bess, il n'est pas certain que ce soit ce nom de variable.

Tu sais Soubri, on pourrait prendre un peu plus de temps et te pondre ton code, mais au final que va-t-il se passer ? Tu n'auras rien compris à ce qu'on te file et tu resteras trop dépendant.

Alors que si tu te renseignes un tout petit peu, pas plus de 15 minutes sur Google, tu apprendras toutes les subtilités de la création de menus sous CMSMS, et là tu te rendras compte de toutes les possibilités ;-)
C'est ce que je fais, tu sais.
Ne va pas croire que je demande qu'on le fasse à ma place.
Je suis sur google depuis quelques temps et ça m'a aidé. Il arrive des fois qu'on soit un peu KO et qu'on demande un peu d'aide.
Surtout ne va pas croire que je cherche une âme charitable, loin de là!!!

De toute manière, j'ai un peu chipoté au code et je m'approche petit à petit:
http://alternative-liege.be/forum/capt3.jpg

Et j'y arriverai...
bien à toi!


[Résolu]Histoire de menus - bess - 05/01/2010

pour comprendre le principe de extra1 tente la manip suivante simplement pour tester :

dans tes 3 sections headers : accueil / les abl / partenaire tu mets comme information "Attribut supplémentaire 1 de la page :" : toto1 / tata2 / titi3

Cette info tu la trouveras dans les options de gestion des pages

ensuite dans le gabarit de ton menu tu fait cette modif

Citation :{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul>' 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>
<a {elseif $node->current == true}
<li>
<a {elseif $node->haschildren == true}
{*<li class="menuparent">*}
<a {elseif $node->type == 'sectionheader' and $node->haschildren == true}
<li>{$node->extra1}{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_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'}
>{$node->menutext}</a>
{/if}
regarde le résultat et vérifie que l'appel à $node->extra1 fait bien apparaitre les valeurs toto1 / tata2 et titi3.

Confirme nous ca ou recherche si ca ne marche pas sur les forums fr et org sur le bon nom à utiliser.

Une fois que ca marche (montre un screenshoot) je te donne la suite des choses à faires


[Résolu]Histoire de menus - soubri - 05/01/2010

Merci de vos aides, mais je pense que j'ai un problème à la base.

Bon, je vais devoir aller bouloter, je repasserai en soirée.

Merci


[Résolu]Histoire de menus - soubri - 05/01/2010

Bein oui! c'est encore moi.
ca avance petit à petit. En chipotant un peu, je suis arrivé à ceci:
http://www.alternative-liege.be/forum/capt4.jpg
et
http://www.alternative-liege.be/forum/capt5.jpg

Quand le lien est actif, le style ne s'applique pas.

Le code est le suivant:
Code :
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul>' 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>
<a {elseif $node->haschildren == true}
<li>
<div id='{$node->extra1}'{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_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'}
>{$node->menutext}</a>
{/if}
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
{/if}
Merci


[Résolu]Histoire de menus - soubri - 06/01/2010

Ca y est, le problème est presque résolu avec le code suivant.

Code :
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul></div>' times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}

<div id='{$node->extra1}' {elseif $node->type == 'separator'}

<li>
<a {elseif $node->haschildren == true}
<li>
<div id='{$node->extra1}'{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_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'}
>{$node->menutext}{*</a>*}
{/if}
{/foreach}
{repeat string='</li>
</ul>
</div>' times=$node->depth-1}
</li>
</ul>
{/if}
ce qui donne:
http://www.alternative-liege.be/cms

On y arrivera...


[Résolu]Histoire de menus - bess - 06/01/2010

touche plus le gabarit il m'a l'air d'être bon. maintenant tu pars sur du CSS et ca devrait aller Smile


[Résolu]Histoire de menus - soubri - 06/01/2010

Voilà, le problème est résolu.
Une grand merci et si ça peut aider certain, voici le code du gabarit du menu. Il est améliorable bien entendu.

Code :
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul>' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul></div>' times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}

<div id='{$node->extra1}' {elseif $node->type == 'separator'}

<li>
{*<a *} {elseif $node->haschildren == true}
<li style='list-style-type:none'>
<div id='{$node->extra1}'{elseif $node->type == 'separator'}
<li style="list-style-type: none;"><hr class="menu_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='liencache'>{$node->menutext}</span>{*</a>*}
{/if}
{/foreach}
{repeat string='</li>
</ul>
</div>' times=$node->depth-1}
</li>
</ul>
{/if}
Wink