v4 :: menu avec clas="current"
dans Entraide et S.A.T
dans la version précédente de Pluxml j'avais réussi à faire que mon menu (de catégories) avait une class="current" et donc la catégorie sur laquelle on cliquait s'affichait en gras dans le menu. L'utilisateur sait donc dans quelle catégorie il se trouve et en + graphiquement c'est intéressant.
Mais dans la version 4, je ne trouve pas la solution. Quelqu'un sait-il comment faire ?
Merci.
Mais dans la version 4, je ne trouve pas la solution. Quelqu'un sait-il comment faire ?
Merci.
0
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Cordialement
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Si oui, à quelle adresse ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Remplacer la méthode (fonction) "staticList" par :
function staticList($extra='') { # Si on a la variable extra, on affiche un lien vers la page d'accueil if($extra != '') { $title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET); if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '') echo '<li class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>'; else echo '<li><a href="./" title="'.$title.'">'.$extra.'</a></li>'; } # On verifie qu'il y a des pages statiques if($this->plxMotor->aStats) { foreach($this->plxMotor->aStats as $k=>$v) { if($v['readable'] == 1 AND $v['active'] == 1) { # La page existe bien et elle est active $name = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET); $url = './?static'.intval($k).'/'.$v['url']; if($this->plxMotor->mode == 'static' AND $this->plxMotor->cible == $k) echo '<li class="active"><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>'; else echo '<li><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>'; } } # Fin du while } }Remplacer la méthode (fonction) "catList" par :function catList($extra='', $format='#cat_name') { # Si on a la variable extra, on affiche un lien vers la page d'accueil (avec $extra comme nom) if($extra != '') { $title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET); if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '') echo '<li class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>'; elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == 'home') echo '<li class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>'; else echo '<li><a href="./" title="'.$title.'">'.$extra.'</a></li>'; } # On verifie qu'il y a des categories if($this->plxMotor->aCats) { foreach($this->plxMotor->aCats as $k=>$v) { if($v['articles'] > 0) { # On a des articles $v['name'] = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET); # On modifie nos motifs $name = str_replace('#cat_id',intval($k),$format); $name = str_replace('#cat_name',$v['name'],$name); $name = str_replace('#art_nb',$v['articles'],$name); # Ok $url = './?categorie'.intval($k).'/'.$v['url']; if($this->plxMotor->mode == 'categorie' AND $this->plxMotor->cible == $k) echo '<li class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == $k) echo '<li class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; else echo '<li><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; } } # Fin du while } }De cette façon, une classe css "active" sera appliquée sur la balise "li" de la catégorie ou page statique active.En test ici : http://blog.flox-arts.net
message lu, code copié/collé, css adaptée, fichiers uploadés et la magie opére....
merci.
Lorsque l'on entre dans un article, le menu perd le class="active" de la catégorie de cet article.
Comment faire pour contourner cela ?
Le détail d'un article donne une url en /?articlexx et ne fait pas apparaître l'appartenance à une catégorie.
Ce qui me fait émettre une idée sur l'écriture des url :
à savoir ne pas faire transparaître le mode (static, catégorie ou article) mais le nom.
ex : http://www.monsite.com/nom_page_statique
ou http://www.monsite.com/nom_categorie
et pour un article d'une catégorie :
http://www.monsite.com/nom_categorie/nom_article
On aurait ainsi une url "propre".
Quoiqu'il en soit, lorsque l'on créé un article, il est affilié à une catégorie.
On doit donc pouvoir retrouver la parenté et appliquer la classe active à celle-ci. Isn't it ?
Je viens de modifier la fonction pour que ça marche également en mode article.
Avec Pluxml tout est possible
merci pour cette dernière modification.
où as-tu fais la modif ? c'est pour comparer avec le code précédent et voir ce qu'il manquait.
Merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
marama a écrasé la modif précédente.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)