Vous n'êtes pas identifié(e).
Pages : 1
Salut à tous
Une petite amélioration que j'ai fait sur le module XMENU : désormais, les pages parent de la page active affichent une classe "xzonp", comme le menu natif !
Pratique pour les designers css !
Je la propose ici, à voir si vous voulez l'intégrer dans le module de pydou.
[== Indéfini ==]
<?php
/*
* module: xmenu - extended menu
* Extra Menu for ZitePLUS
*
* Ce module permet la génération de menu hierarchique dans ziteplus
*
* Copyright - (d)oekia 2009
* Licence : CeCILL-B, http: //www.cecill.info
* Copyright Jean-Paul GIAUSSRAND 2009-2010
* Site: http://www.giausserand.fr/index.php?perma=ziteplus
*
Proposition v1.9 01/06/14 Super_chemist Ajout de la classe xzonp pour les parents de la page active
v1.8 19/06/2010 jpg Adaptation du module à la version 0.9.1:
- gestion évènementielle
- Utilisation de makeURL (en cours)
1.7.1 17/02/2010 jpg Correction adressage 1ère page (suppression ?perma=)
v1.6 14/10/2009 doekia FIXUP: href de la page d'acceuil http://serveur/
FIXUP: pas de '.html' pour cPageTyp == 5
FIXUP: prise en charge du target=_blank
v1.5 09/10/2009 doekia FIXUP: manque un </li> à la fin du menu
FIXUP: manque un / dans l'url quand l'install est en sous-répetoire
FIXUP: 1ere page parent de toutes les autres (=>? bug zite)
v1.4 09/10/2009 jpg simplification du code (identification des pages enfants)
v1.3 09/10/2009 jpg prise en compte des droits sur les pages
v1.2 08/10/2009 jpg Adaptation pour meilleure intégration dans ziteplus
v1.1 08/10/2009 jpg Passage du module en code objet
v1.0 08/10/2009 doekia version initiale
*/
class Txmenu extends Tmodule {
protected function Register() { self::$cms->register_event(eMenu,eBefore,$this->modulename); }
function Event($event,$mode,&$out,$opt=null) {
$xmnu = '';
$isadmin = (int)$_SESSION['zite_admin']>0;
$rewrite = self::$cms->rewrite && !$isadmin;
$base = self::$cms->rewrite ? ($isadmin ? self::$cms->basep.self::$cms->get_data('navig_admin') : (self::$cms->rewrite===2?self::$cms->config['files_index']:' ')) : self::$cms->basep;
for( $count = 0, reset(self::$cms->struct), $level=0; list($key, $pg) = each(self::$cms->struct); $count++){
$noli = '</li>';
$activ = (self::$cms->truepage == $key)?' xzon':''; // Nous sommes sur cette page
$child = (@self::$cms->struct[$key+1][cPageRang] > @$pg[cPageRang])?' xnest':''; // Nous avons des pages enfants - FIXME
for ($i=1; @self::$cms->struct[$key+$i][cPageRang] > @$pg[cPageRang];$i++){//Nous avons un enfant sur lequel nous sommes
$activ .= (self::$cms->truepage == ($key+$i) )?' xzonp':'';
}
if ($pg[cPageType]>pgbitType) continue; // La page est un panneau lateral - FIXME à voir
if (!($pg[cPageOn] || $isadmin)) continue; // La page est désactivée
$tgt = ((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?' target="_blank"':'');
if ($pg[cPageRang]!=$level){ // Testons le niveau et (dés)imbriquons si besoin
while($level > ($pg[cPageRang]+0)) { $xmnu .=$noli.'</ul>'; $level--; }
while($level < ($pg[cPageRang]+0)) { $xmnu .='<ul class="xzul'.++$level.'">'; $noli = ''; }
}
if (self::$cms->isPageAuth($key)){
$f = $rewrite ? $pg[cPageIdent].'.html' : $pg[cPageIdent];
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.($count?(($pg[cPageType]&pgbitType)!=5?$base.$f:$pg[cPageIdent].(isset($pg[cPageOpt]['target'])?'" target="'.$s[cPageOpt]['target']:'')):preg_replace('/\/[^\/]*$/','',$_SERVER['REQUEST_URI']).'/').'"'.$tgt.'>'.$pg[cPageTitre].'</a>';
}
}
for($noli = '</li>';$level > 0; $level--) { $xmnu .=$noli.'</ul>'; $noli=''; }
self::$cms->content['xmenu']=$xmnu;
}
}
?>
Adrien
Hors ligne
Pages : 1