Modification du plugin “Derniers commentaires”
Quand on compare avec le niveau de professionnalisme attaché à tous les plugins de Dotclear, je devrais avoir honte de poster mes modifications.
Je compte donc sur votre indulgence : d’abord ma bidouille fonctionne, ensuite si vous êtes arrivé ici, c’est sans doute que vous cherchiez quelque chose du genre.
Les dernières versions permettent une plus grande liberté qu’auparavant dans la présentation de ces commentaires (heure plus ou moins précise, jour, mois, année au choix…), la dernière en date (version 0.9.4) propose ainsi d’organiser à sa guise la syntaxe de ces commentaires:
Par exemple:
li title=”{comment_content_escape}”>span class=”lastcomment_date”>{day}/{month}/{year} {hour}:{minutes} {comment_author} - a href=”{comment_href}”>{post_title}/li>
donnerait:
- 07/03/08 22:20 Game A - Modification du plugin
Quelque chose pourtant me chagrinait : pour peu que l’on soit le 07/03/08, cette information est à peu près inutile, au contraire du moment dans la journée.
Par contre, si le commentaire a été posté la veille, qu’il ait été à 21 ou à 6h du matin ne change pas grand chose.
Je voulais donc que, si le commentaire datait du jour, seules les heures et les minutes soient affichées, et dans un autre cas que seule apparaisse la date.
C’est là qu’intervient ma nullité en programmation, qui m’empêche de saisir assez les arcanes de ce plugin pour le faire plus finement. Voilà mon astuce:
1/ Dans la configuration du plugin, j’ai tout d’abord formaté les commentaires ainsi:
Vous vous demandez sans doute ce que vient faire ce paramètre {year} entre le jour et le mois. Il ne fera pas en tout cas ce qu’on pouvait attendre de lui.
2/ Avec un logiciel FTP, on accède ensuite au ftp du domaine sur lequel se trouve dans dotclear, on entre dans les dossiers “ecrire”, “tools” puis “lastcomment”. Vous devriez y trouver un fichier functions.php.
Copiez-le sur votre disque, ouvrez-le avec un éditeur de texte et cherchez le passage:
$values[‘year’] = date(‘Y’, $time );
$values[‘month’] = date(‘m’, $time );
$values[‘day’] = date(‘j’, $time );
$values[‘hour’] = date(‘H’, $time );
$values[‘minutes’] = date(‘i’, $time );
$values[‘seconds’] = date(’s’, $time );
C’est lui qu’il va falloir compléter et modifier.
À la place, collez :
//si commentaire du jour, on affiche les minutes et les heures à la place
$aujourdhui = date(‘d/m’);
$commentaire_date = date(‘d/m’, $time );
If ($commentaire_date == $aujourdhui) {
$values[‘year’] = “:”;
$values[‘month’] = date(‘i’, $time );
$values[‘day’] = date(‘H’, $time );
$values[‘hour’] = date(‘H’, $time );
$values[‘minutes’] = date(‘i’, $time );
$values[‘seconds’] = date(’s’, $time );
}
Else {
$values[‘year’] = “/”;
//code original
//$values[‘year’] = date(‘Y’, $time );
$values[‘month’] = date(‘m’, $time );
$values[‘day’] = date(‘j’, $time );
$values[‘hour’] = date(‘H’, $time );
$values[‘minutes’] = date(‘i’, $time );
$values[‘seconds’] = date(’s’, $time );
//fin du code original
}
Ce bout de code compare la date du commentaire à la date du jour. Si les deux sont identiques, on donne à {year} la valeur d’un “:”, à {day} les heures et à {month} celle des minutes.
Dans un autre cas, {year} vaut “/”, et on affecte aux deux autres variables les valeurs qu’elles sont censées contenir d’après leur nom.
Évidemment, j’ai affecté à {year} la fonction de séparer les nombres parce que je ne voulais pas afficher l’année, complètement inutile pour moi.
Oui, cette solution est affreuse. Mais elle fonctionne.
