Fonction $plxShow->staticList avec #group_id

DjbWebmasterDjbWebmaster Member
septembre 2012 modifié dans Entraide
Bonsoir à tous,


J'ai une petite question sur une fonction pour afficher mon menu (navigation)


pour la navigation verticale, j’utilise la fonction:


<?php $plxShow->staticList($plxShow->getLang('HOME'),'<li id="#static_id"><a href="#static_url" class="#static_status" title="#static_name">#static_name</a></li>'); ?>



cette fonction me permet d'afficher tous les liens (page static) dans ma sidebar.


Je veux créer maintenant un groupe 1 pour mes pages static afin de limiter le nombre lors de l'afficher dans une menu horizontal (la navigation de mon menu du header est limité à 4 liens)


j'ai testé $format_group, faut-il joué avec le CSS pour cacher mon id="#group_id" ? ou faut-il créer une condition en php pour filtrer ?


Avez vous une astuce ?


Cordialement,
Djb

Réponses

  • danielsandanielsan Member
    septembre 2012 modifié
    Salut,


    voici ce que j'utilise ( à confirmer ):
    <!-- DEBUT Menu_site -->
    <ul>
    	<?php // astuce statics classées par groupe !!!
    	// étape 1: groupage des statics dans chaque groupe
    	if($plxShow->plxMotor->aStats) { // s'il y a des pages statics
    		$menu_groupe = array(); // création du tableau des groupes
    		foreach($plxShow->plxMotor->aStats as $k=>$v) { // on boucle sur la liste des statics
    			if($v['active'] == 1 AND $v['menu'] == 'oui' AND $v['group'] == 'Footer') { // si la page est active, affichée et appartenant au groupe indiqué
    				$menu_groupe[$v['group']][$k] = $v; // on rajoute une entrée pour chaque page static dans chaque groupe
    			}else{}
    		}
    	 
    		// étape 2: affichage du menu
    		
    		foreach($menu_groupe as $k=>$v){ // on boucle sur les groupes
    			foreach($menu_groupe[$k] as $i=>$j){ // on boucle sur chaque page static du groupe
    				$url = $plxShow->plxMotor->urlRewrite('?static'.intval($i).'/'.$menu_groupe[$k][$i]['url']); // formatage de l'url
    				// gestion du status
    				if($plxShow->staticId()){ // si nous sommes sur une page static
    					$idStat = $plxShow->staticId(); // on récupère l'identifiant de la static active
    					// on compare cet identifiant avec celui du menu
    					if($idStat==intval($i)){ // s'il est égale à celui du menu, le status est actif
    						$status = "active";
    					} else {
    						$status = "no-active";
    					}
    				}else{
    					$status = "no-active";
    				}
    				echo "<li><a href=\"".$url."\" title=\"".plxUtils::strCheck($menu_groupe[$k][$i]['meta_description'])."\" class=\"".$status."\">".plxUtils::strCheck($menu_groupe[$k][$i]['name'])."</a></li>\n"; // création du lien vers la static
    			} // fin de la boucle des statics
    		} // fin de la boucle des groupes
    	}else{} // magique ! ^^^
    	?>
    </ul>
    <!-- FIN Menu_site -->
    


    Cordialement,
  • Merci Daniel, cette méthode est très complète avec la gestion de la classe "active" ou "no-active" pour chaque lien.
  • DjbWebmasterDjbWebmaster Member
    septembre 2012 modifié
    Merci Danielsan, je vais tester ce soir ton script

    Bye
    Djb


    Edit: Daniel,

    Ça marche mais une dernière question, pourquoi le nom du groupe s'affiche dans mes<li> ?
    C'est un bug

    bye et merci encore

    Djb
  • cpalocpalo Member
    juin 2013 modifié
    Bonjour,

    @Daniel
    j'ai essayé ton script car je cherche à faire un menu déroulant avec soit le spages isolées ( accueil, blog, contact, et les groupes des pages statiques).
    Dans a page générée au lieu du menu j'ai: <ul> </ul>
    Alors ce vide est-du à un problème du css du menu que je dois faire, ou quelque chose du au script que je devrai déclarer quelqque part.

    Création dans le css des class active et no-active, de stactic-group?

    Merci
Connectez-vous ou Inscrivez-vous pour répondre.