menu à deux lignes...
Bonjour à tous,
J'essaye de créer un menu (dans le header) affichant :
- sur la première ligne : Accueil, "Groupe de pages statiques n°1", "Groupe de pages statiques n°2", etc.
- sur la deuxième ligne : quand on clique sur "Groupe de pages statiques n°1" la liste des pages statiques de ce groupe n°1, et ainsi de suite...
J'y suis arrivé sur le thème par défaut en créant un menu avec des radio cf code :
dans header.php :
dans pluccss.css
Cependant... il y'a un mais... cette deuxième ligne disparait lorsque l'on clique sur une autre page statique du même groupe (si j'analyse bien c'est parce-que la page se recharge et on perd donc le "checked" sur mes radio).
Or j'aimerais justement garder cette deuxième ligne pour continuer à naviguer dans ce même groupe.
Si j'ai bien compris le #static_status (de $plxShow->staticList) qui renvoie active/noactive devrait m'aider en cela... mais comme il ne s'applique qu'aux pages statiques je n'arrive donc pas à utiliser ce statut pour appliquer un style css (du type display: block) au groupe parent.
Existe-t-il un moyen de récupérer l'info indiquant si le groupe est actif ou non ? (une sorte #group_status à la manière du #static_status).
Ou quelqu'un aurait une solution pour arriver à garder affichée cette deuxième ligne?
Merci d'avance !
J'essaye de créer un menu (dans le header) affichant :
- sur la première ligne : Accueil, "Groupe de pages statiques n°1", "Groupe de pages statiques n°2", etc.
- sur la deuxième ligne : quand on clique sur "Groupe de pages statiques n°1" la liste des pages statiques de ce groupe n°1, et ainsi de suite...
J'y suis arrivé sur le thème par défaut en créant un menu avec des radio cf code :
dans header.php :
[== PHP ==]
<nav class="nav" role="navigation">
<ul class="menu two-line">
<?php $plxShow->staticList($plxShow->getLang('HOME'),'<li class="#static_status" id="#static_id"><a href="#static_url" title="#static_name">#static_name</a></li>','<label for="#group_id">#group_name</label><input type="radio" name= "static_radio" id="#group_id" >'); ?>
<?php $plxShow->pageBlog('<li id="#page_id"><a class="#page_status" href="#page_url" title="#page_name">#page_name</a></li>'); ?>
</ul>
</nav>
dans pluccss.css
[== CSS ==]
.two-line input[type=radio] {
display: none;
}
.two-line ul {
display: none;
}
.two-line input[type=radio]:checked+ul{
display: block;
position: absolute;
}
Cependant... il y'a un mais... cette deuxième ligne disparait lorsque l'on clique sur une autre page statique du même groupe (si j'analyse bien c'est parce-que la page se recharge et on perd donc le "checked" sur mes radio).
Or j'aimerais justement garder cette deuxième ligne pour continuer à naviguer dans ce même groupe.
Si j'ai bien compris le #static_status (de $plxShow->staticList) qui renvoie active/noactive devrait m'aider en cela... mais comme il ne s'applique qu'aux pages statiques je n'arrive donc pas à utiliser ce statut pour appliquer un style css (du type display: block) au groupe parent.
Existe-t-il un moyen de récupérer l'info indiquant si le groupe est actif ou non ? (une sorte #group_status à la manière du #static_status).
Ou quelqu'un aurait une solution pour arriver à garder affichée cette deuxième ligne?
Merci d'avance !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
donc une solution sans utilisation de JavaScript serait de faire une extension qui modifie l'affichage du menu
tout d'abord modifie le menu pour rajouter une classe CSS comme ça (ajout dans le "input type=radio") :
code CSS :
et le plus gros, le code de l'extension
il reste plus qu'à me débrouiller avec les CSS pour rendre ça tout beau
Donc pour ceux que ça aiderait; la solution que j'ai trouvée est d'utiliser la propriété des boutons radio (un seul bouton peut être actif à la fois) pour gérer l'appel de la deuxième ligne.
Ce qui donne :
Modification du plugin pour renvoyer l’attribut checked/unchecked à la place de la class actif/unactif :
Et modification de la navigation pour le récupérer afin de l'exploiter dans le CSS : Le CSS reste inchangé à part la ligne que l'on peut maintenant supprimer car elle est devenue inutile !