PluXml 5.0: Affichage des archives façon 4.3
Bref, je préfèrais l'affichage que l'on avait sous PluXml 4.3, à l'aide d'un petit hack.
Aujourd'hui je vous propose une petite modification inspiré du hack, qui va nous permettre re-obtenir l'agencement des archives en sidebar, à la façon de PluXml 4.3.
La procédure
Dans la racine de PluXml, éditez core/lib/class.plx/show. nous aurons une fonction à insérer avant les derniers symboles:} ?>Insérons la fonction suivante:
/** * Méthode qui affiche la liste des archives comme sur la version 4.3 de PluXml * * @param format format du texte pour l'affichage (variable : #archives_id, #archives_status, #archives_nbart, #archives_url, #archives_name) * @return stdout * @scope global * @author Stephane F **/ public function archListOld($format='<dd id="#archives_id"><a class="#archives_status" href="#archives_url" title="#archives_name">#archives_name (#archives_nbart)</a></dd>'){ $array = array(); if($files = $this->plxMotor->plxGlob_arts->query('/^[0-9]{4}.[home|0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','art','rsort',0,false,'before')) { foreach($files as $id => $filename){ if(preg_match('/([0-9]{4}).([home|0-9,]*).[0-9]{3}.([0-9]{4})([0-9]{2})([0-9]{6}).([a-z0-9-]+).xml$/',$filename,$capture)){ if(!isset($array[$capture[3]][$capture[4]])) $array[$capture[3]][$capture[4]]=1; else $array[$capture[3]][$capture[4]]++; } } foreach($array as $year => $data){ echo '<dl><dt><a href="?archives/'.$year.'">'.$year.'</a></dt>'; foreach($array[$year] as $month => $nbarts){ $name = str_replace('#archives_id','archives-'.$year.$month,$format); $name = str_replace('#archives_name',plxDate::getCalendar('month', $month),$name); $name = str_replace('#archives_url', $this->plxMotor->urlRewrite('?archives/'.$year.'/'.$month), $name); $name = str_replace('#archives_nbart',$nbarts,$name); $name = str_replace('#archives_status',(($this->plxMotor->mode=="archives" AND $this->plxMotor->cible==$year.$month)?'active':'noactive'), $name); echo $name; } echo '</dl>'; } } }Puis dans notre thème/sidebar.php, remplacons l'affichage des archives par:
<h2>Archives</h2> <?php $plxShow->archListOld() ?>
Enfin, si vous voulez mettre en valeur les années de la liste (choix très subjectif), vous pouvez ajouter ceci au style.css:
#sidebar dt { font-weight: bold; font-size: 12px; }
Le mot de la fin
Si tout à bien fonctionné, nous devrions avoir des archives plus bavardes. Un billet à été créé sur le forum de PluXml pour l'occasion. Je répercuterais les modifications pertinentes du forum vers ce billet.Merci à Stéphane qui corrigé les erreurs de la fonction.
Edit (09/10/2010): Suppression balises h3, ajout mise en forme des balises dt dans style.css.