Afficher le nombre de billets par catégorie dans Dotclear
Par NiKo le vendredi 6 mai 2005, 12:49 - Dotclear - Lien permanent
Suite à une question de Thalion, dont je vous invite à découvrir le blog sympathique, voici une méthode pour afficher le nombre de billets par catégorie (j'en profite pour étrenner la coloration syntaxique générée par le plugin Geshi de Digital-Fashion).
Fichier /dotclear_path/themes/<montheme>/prepend.php :
/** @function dcCatListWithNumbers Cette fonction affiche une liste des categories avec les liens pour y acceder, ainsi que le nombre de billets par categorie. La liste generee est une liste non ordonnee (<ul>), il est donc tres simple de la mettre en forme par la suite. @param string block Chaine de substitution pour pour la liste ('<ul>%s</ul>') @param string item Chaine de substitution pour un element ('<li>%s</li>') @param string number Chaine de substitution pour le nombre de billets (' [%s]') */ function dcCatListWithNumbers($block='<ul>%s</ul>',$item='<li>%s</li>',$number=' [%s]') { global $rs_cat, $cat_id, $lang, $blog; $comp_url = ''; if ($lang) { $comp_url = $lang.'/'; } if (!$rs_cat->isEmpty()) { $res = ''; while (!$rs_cat->EOF()) { if ($rs_cat->f('nb_post') > 0) { $id = $rs_cat->f('cat_libelle_url'); $libelle = $rs_cat->f('cat_libelle'); $nPost = $rs_cat->f('nb_post'); $lien = '<a href="'. sprintf($blog->front_url['cat'],$comp_url.$id). '">'.$libelle.'</a>'.sprintf($number,$nPost); if ($cat_id == $id) { $lien = '<strong>'.$lien.'</strong>'; } $res .= sprintf($item,$lien); } $rs_cat->moveNext(); } $rs_cat->moveStart(); printf($block,$res); } }
Dans votre fichier template.php, en lieu et place de la fonction dcCatList(), il ne vous reste plus qu'à appeller votre nouvelle fonction dcCatListWithNumbers(), voire lui passer en arguments la mise en forme à appliquer aux éléments $block, $item et $number.
Par exemple, si l'affichage du nombre entre crochets ne vous satisfait pas, vous pouvez utiliser cette appel :
<?php dcCatListWithNumbers('<ul>%s</ul>', '<li>%s</li>', ' (%s)'); ?>



















Commentaires
1. Le vendredi 6 mai 2005, 14:33 par Laurent - CyberSDF
2. Le vendredi 6 mai 2005, 14:34 par Laurent - CyberSDF
3. Le vendredi 6 mai 2005, 20:35 par Thalion
4. Le dimanche 8 mai 2005, 11:23 par [ NikO ]
5. Le dimanche 8 mai 2005, 12:29 par NiKo