Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] Menu principal avec différentes couleurs de boutons ?
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.3
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


J'utilise le thème SIMPLEX que je tente d'adapter à mes besoins.

Je cherche à faire des regroupements de "boutons" en leur attribuant un fond de couleurs selon leur ensemble d'appartenance... Par exemple : Mon entreprise \ Ma philosophie seraient en bleu puis Mes Prestations \ Mes Références seraient en rouge...

Existe-t-il un moyen d'attribuer une classe différente aux entrées de menu principal ?

Merci par avance !
#2

Bonjour,
sujet maintes fois traité ici.
Une des solutions est d'attribuer une class avec le nom de l'alias de la page dans le gabarit du menu.

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#3

Très bien, j'ai refait une recherche... J'ai lu des articles, mais je ne suis pas sûr d'avoir tout pigé.

Ce que je comprends :
- si je veux donner une couleur à un groupe d'entrées de menu, je donne un alias qui comprendrait un code commun, par exemple : 1-titredepagedeniveau0 (pour toutes les pages de niveau 0 du groupe 1) et 2-titredepagedeniveau0 (pour toutes les pages de niveau 0 du groupe 2)
- ensuite, faut faire le tri en repérant les 1 et les 2 dans les alias ? (là ça se complique... je connais php, mais Smarty c'est encore mystérieux... C'est facile à faire ?) et du coup je décide de créer la classe pour les 1 ou la classe pour les 2 ?

La logique est-elle celle-ci ?
#4

tu peux aussi utiliser les champs extra 1, 2 ou 3 et marquer carrément le nom de la classe.
Dans le menu, ce sera :
class="{$node->extra1}" (si tu utilises le champ supplémentaire 1).

Pour chaque page, tu indiques dans le champ supplémentaire 1, le nom de la classe.
Ca évite de toucher aux alias, puisque tu doit faire du regroupement.

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#5

Big Grin super !

J'avais tenté avec cet appel trouvé dans les topics {$content_obj->mProperties->mPropertyValues.extra1} mais qui ne donnait absolument rien en sortie ...

Étonnamment il me faut créer une sous-page (niveau1) pour que la couleur du "bouton de nav" (donc l'attribut supplémentaire 1) soit prise en compte. Si le chapitre ne comporte que la page par défaut (niveau 0), il semble que l'attribut supplémentaire ne soit pas lu ! Pourquoi cela ?
#6

copie ici ton gabarit de menu.

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#7

Bonjour,

tu peux aussi agir seulement sur les CSS avec "li + li" (si ton menu est une liste) par exemple :

.menu ul li a { color: black;} > signifie toutes les li en noir

.menu ul li + li a { color: red;} > signifie les li en rouge à partir de la 2eme

ou


.menu ul li + li + li + li a { color: #fff;} > > signifie les li en blanc à partir de la 4eme

etc etc
#8

Chaque page a une hiérarchie dépendante de son parent. Le plus efficace, je pense, serait d'appliquer une classe dans le gabarit de menu :
<li class="menu{$node->hierarchy|truncate:1:"":true}" ...
Le truncate sert à supprimer tout ce qui se trouve après le premier chiffre.
Cela te donnera <li class="menu1" pour l'onglet 1 et tous ses enfants...
Tu as un exemple de gabarit ici : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=2680 qui permet de modifier la couleur du parent uniquement. Ton cas est plus simple, il te suffit d'ajouter class="menu{$node->hierarchy|truncate:1:"":true}" à chaque fois que tu vois un <li
#9

Merci, merci.

J'ai une nouvelle difficulté ! j'aimerais "casser" la navigation de niveau 1 en deux parties :

- les chapitres essentiels resteraient accessibles depuis la navigation principale (gabarit Simplex)

- des chapitres moins essentiels (du genre : qui sommes-nous) et le retour à l'accueil (home) seraient accessibles depuis un autre emplacement (en haut à droite de l'écran par exemple).


Quelle est la manière la plus élégante ?
Ca ressemble à peu près au problème des couleurs d'onglets, mais en fait comment faire le tri ?

tankiou
#10

Il me semble, à première vue, que le plus simple serait d'utiliser 2 menus avec des exclude en paramètre (voir doc du module menumager).
#11

paramètre exclude ou jongler avec une hierarchisation.

page#1
page#2
page#3
menuSecondaire#1 <-- Entête de section rendue invisible dans le menu
page#4
page#5 <-- les 3 sont sous menuSecondaire#1
page#6

et avoir un {menu} dans le haut de ton site et un {menu template="menu_footer" start_page="menuSecondaire#1" number_of_levels="1"} dans le footer (par exemple)

C'est ce que j'utilise pour cmsmadesimple.fr Smile
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)