[5.0] Affichage des archives façon 4.3
PPmarcel
Member
Bonjour.
Avec l'arrivée de PluXml 5.0, nous avions eu le droit à un affichage des archives natif, dans la sidebar. Malheureusement, je trouve qu'on ne distingue plus très bien les années des mois. De plus, je n'aime pas l'idée de réduire une année de plublications en une seule ligne, j'ai l'impression de ne pas avoir travaillé.
Bref, je préfèrais l'affichage que l'on avait sous PluXml, à l'aide d'un petit hack.
Aujourd'hui je vous propose une petite modification qui va vous permettre re-obtenir l'agencement des archives en sidebar, à la façon de PluXml 4.3:
Dans la racine de PluXml, éditez core/lib/class.plx/show. nous aurons une fonction à insérer avant les derniers symboles:
Merci bien à Stéphane qui corrigé les erreurs de la fonction.
Avec l'arrivée de PluXml 5.0, nous avions eu le droit à un affichage des archives natif, dans la sidebar. Malheureusement, je trouve qu'on ne distingue plus très bien les années des mois. De plus, je n'aime pas l'idée de réduire une année de plublications en une seule ligne, j'ai l'impression de ne pas avoir travaillé.
Bref, je préfèrais l'affichage que l'on avait sous PluXml, à l'aide d'un petit hack.
Aujourd'hui je vous propose une petite modification qui va vous permettre re-obtenir l'agencement des archives en sidebar, à la façon de PluXml 4.3:
Dans la racine de PluXml, éditez core/lib/class.plx/show. nous aurons une fonction à insérer avant les derniers symboles:
}
?>
Insérez 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 votre thème/sidebar.php, remplacez 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;
}
Et voila, ça devrait marcher.Merci bien à Stéphane qui corrigé les erreurs de la fonction.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
- juste une modif perso ,
je suis repartit sur une liste imbriquée et titre h3 pour collé avec mes pratiques de codages .
Merci.
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Je ne vois pas l’intérêt, ni l'utilité de mettre une balise <h3> entre <dt>...</dt>, d'autant plus que je trouve que ça n'a pas sa place ici. Les balises h sont faites pour marquer des entêtes de sections/paragraphes, pas pour se retrouver dans des listes tel que c'est fait ici. Et puis il y a le css pour donner l'apparence voulue à la liste.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Pour les lien de navigation vers les "archives" , je considere ceux la comme secondaires,dans les liens de navigations internes du sites que l'on peut trouver sur la page .. et accessoirement comme des outils de recherche rapide , filtre ou "widget" .
Je les cantonne dans une liste imbriquée ul ul . Le termes 'archives' est passé en titre h2 et les années en h3 .
En codant la page en html5 . Je passe ceux-ci dans aside -> nav -> details Pour finalisé le role que je veux bien leur donner sur la page .(navigation secondaire repliable)
en xhtml 1 , html 4.1 , je ne suis pas enclin a utilisé une liste de définition non plus , ça reste a mon sens une simple liste de lien et un widget , autant que la navigation par categorie ou une liste de mots clés .
cordialement ,
Cyrille
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci