[5.0] Menu horizontal avec groupe
Bonjour,
comme il est dit dans le titre je voudrais créer un menu horizontal avec les groupes de pages statiques, le but étant de faire un menu avec liste déroulante via le CSS. J'ai réussi à faire ce que je voulais mais le seul problème est lorsque la page qui appartient à un groupe n'est pas activée, cela affiche le nom du groupe alors qu'aucune page n'est affiché. Ce quelqu'un a une piste, une idée, enfin n'importe quoi qui pourrait m'aidé je suis preneur parce que là je ne vois franchement pas comment faire .
Voici la classe que j'utilise pour afficher le nouveau menu :
comme il est dit dans le titre je voudrais créer un menu horizontal avec les groupes de pages statiques, le but étant de faire un menu avec liste déroulante via le CSS. J'ai réussi à faire ce que je voulais mais le seul problème est lorsque la page qui appartient à un groupe n'est pas activée, cela affiche le nom du groupe alors qu'aucune page n'est affiché. Ce quelqu'un a une piste, une idée, enfin n'importe quoi qui pourrait m'aidé je suis preneur parce que là je ne vois franchement pas comment faire .
Voici la classe que j'utilise pour afficher le nouveau menu :
<?php
/**
* Classe plxPlugin responsable de l'affichage des plugins sur stdout
*
* @package PLX
* @author Anthony T.
**/
class plxPlugin {
public $plxMotor = false; # Objet plxMotor
public $aStats = array(); # Tableau de toutes les pages statiques
/**
* Constructeur qui initialise l'objet plxMotor par référence
*
* @param plxMotor objet plxMotor passé par référence
* @return null
* @author Florent MONTHEL
**/
public function __construct(&$plxMotor) {
$this->plxMotor = &$plxMotor;
# Génération du tableau des pages statiques pour gérer les groupes plus proprement
if($this->plxMotor->aStats) {
foreach($this->plxMotor->aStats as $k=>$v){
if(!empty($v['group'])){
$this->aStats[$v['group']][$k] = $v;
}else{
$this->aStats[$k] = $v;
}
}
}
}
public function menuList(){
echo '<li><a href="'.$this->plxMotor->urlRewrite().'">Accueil</a></li>';
if($this->aStats) {
foreach($this->aStats as $k=>$v) {
if(!isset($v['name'])){// C'est un groupe
echo '<li>'.$k.'<ul class="sousMenu">';
foreach($v as $g=>$p){
if($p['active'] == 1 AND $p['menu'] == 'oui'){
echo '<li><a href="'.$this->plxMotor->urlRewrite('?static'.intval($g).'/'.$p['url']).'">'.plxUtils::strCheck($p['name']).'</a></li>';
}
}
echo '</ul></li>';
}else{
if($v['active'] == 1 AND $v['menu'] == 'oui'){
echo '<li><a href="'.$this->plxMotor->urlRewrite('?static'.intval($k).'/'.$v['url']).'">'.plxUtils::strCheck($v['name']).'</a></li>';
}
}
}
}
}
}
$plxPlugin = new plxPlugin($plxMotor);
?>
Pour afficher le menu :
<ul id="menuDeroulant">
<?php $plxPlugin->menuList(); ?>
</ul>
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je viens de regarder:
Dans un groupe quand il n'y a aucune page à afficher (soit elles sont inactives, soit elles sont masquées), le nom du groupe n'est pas affiché.
Est-ce que c'est ce que tu veux ? J'ai peut etre mal compris sinon ton besoin
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Stéphane en faite ce que je veux faire est assez simple c'est un menu avec liste déroulante en claire le code html devrait ressembler à ça :
En effet la fonction staticList ne formate pas le code html de cette façon.
Soit tu écris ta fonction pour avoir le code html dont tu as besoin, soit tu arrives à adapter ton système de menu déroulant à ce qui existe sachant que la classe css utilisée est différente pour l'affichage du nom du groupe et l'affichage du menu de la page statique.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)