Pour modifier l'affichage de la page d'archives et obtenir une présentation semblable à un nuage de tags (sorte de « nuage de mois »), où les mois sont affichés avec une taille plus ou moins importante en fonction du nombre de billets publiés, il faut coller le code suivant dans le fichier _public.php du thème actif :
<?php $core->tpl->addBlock('MyArchives', array('tplMyArchive', 'MyArchives')); $core->tpl->addValue('ArchiveRoundPercent', array('tplMyArchive', 'ArchiveRoundPercent')); class tplMyArchive { public function MyArchives($attr,$content) { $p = '$params = array();'; $p .= "\$params['type'] = 'month'; "; if (isset($attr['type'])) { $p .= "\$params['type'] = '".addslashes($attr['type'])."'; "; } if (isset($attr['category'])) { $p .= "\$params['cat_url'] = '".addslashes($attr['category'])."'; "; } $p .= 'if ($_ctx->exists("categories")) { '. "\$params['cat_id'] = \$_ctx->categories->cat_id; ". "} "; $order = 'desc'; if (isset($attr['order']) && preg_match('/^(desc|asc)$/i',$attr['order'])) { $p .= "\$params['order'] = '".$attr['order']."'; "; } $res = "<?php "; $res .= $p; $res .= '$_ctx->archives = $core->blog->getDates($params); unset($params);'." "; $res .= "?> "; $res .= '<?php $_ctx->archives = $_ctx->archives->toStatic(); $_ctx->archives->extend("rsExtDates"); while ($_ctx->archives->fetch()) { if (!isset($max)) { $max = $_ctx->archives->nb_post; } else { if ($_ctx->archives->nb_post > $max) { $max = $_ctx->archives->nb_post; } } } while ($_ctx->archives->fetch()) { $percent = ((integer) $_ctx->archives->nb_post) * 100 / $max; $_ctx->archives->set("roundpercent",round($percent/10)*10); } ?>'; $res .= '<?php while ($_ctx->archives->fetch()) : ?>'.$content.'<?php endwhile; $_ctx->archives = null; ?>'; return $res; } public static function ArchiveRoundPercent($attr) { return '<?php echo $_ctx->archives->roundpercent; ?>'; } } ?>
Appeler ensuite cette fonction en apportant les modifications suivantes au fichier archive.html du thème actif :
- remplacer la ligne
<tpl:Archives>
par<tpl:MyArchives order="asc">
- remplacer la ligne
</tpl:Archives>
par</tpl:MyArchives>
- ajouter le code
class="archive{{tpl:ArchiveRoundPercent}}"
à la ligne<a href="{{tpl:ArchiveURL}}" title="{{tpl:ArchiveDate encode_html="1"}}">
pour obtenir la ligne suivante :
<a href="{{tpl:ArchiveURL}}" class="archive{{tpl:ArchiveRoundPercent}}" title="{{tpl:ArchiveDate encode_html="1"}}">
Il vous restera bien sûr à ajuster vos CSS. Vous pouvez pour cela vous appuyer sur notre tutoriel un nuage de tags.