Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

06.10.2009

Afficher le début d'un commentaire, dans la liste des derniers publiés

Hautetfort ne donne que l'auteur du commentaire et le titre de la note concernée. Nous ne sommes pas obligés de nous en contenter. (Mise à jour d'une note du 13 mai 2009)

Quand d'aucuns toujours ministres vous inciteraient à prendre le vélo parce que l'essence est trop chère, comme d'autres vous inciteraient à manger des brioches quand le pain viendrait à manquer, il est temps de se prendre en charge pour ne pas se laisser faire par le système. Modestement, et avec gentillesse, bousculons les habitudes de notre blog pour afficher le début des commentaires.

Cette note a été mise à jour...

D'abord publiée le 20 janvier 2009, cette note a été mise à jour le 2 avril, pour conseiller le blogmestre avisé de prolonger sa lecture par la note détaillant la création d'un nouvel élément. Une véritable refonte a été faite 13 mai, après la mise en place du "fil de discussion" dans les commentaires.

Si le code de l'élémént "Commentaires récents" n'a pas réellement évolué, une mise à jour semble s'imposer pour ceux qui l'avaient personnalisé. C'était l'occasion de réécrire le code et la note qui suivent.


Le code du module « Commentaires récents »

Le code de base est le suivant. J'ai ajouté des retours à la ligne pour le rendre, relativement, plus lisible

{comments assign="comment" lastn="10" posts="posts"}
{if $comment.first}<ul>{/if}
<li>
<a href="{$comment.permalink}#c{$comment.id}">{$comment.authorname|truncate:50:"..."}</a>
{t}on{/t}
<a href="{$comment.permalink}">{$comment.post|truncate:50:"..."}</a>
</li>
{if $comment.last}
</ul>
{/if}
{/comments}

Comme pour le module "Dernières notes", on retrouve :

  1. La mention lastn="10" pour demander au moteur de servir les dix derniers commentaires.
    Nous la modifierons pour ne demander que les 7 derniers commentaires.
  2. {$comment.post|truncate:50:"..."} l'instruction d'affichage du titre de la note avec une troncature au 50ème caractère.

Nous ne voulons pas nous en tenir là, puisque nous voulons quelque chose du genre :
[À propos de...] :"titre de la note", [auteur du commentaire] a dit : "[début du commentaire]"

Pour le titre et l'auteur, les instruction sont déjà dans le code, mais pour le début du commentaire il faut utiliser {$comment.source}
Et comment je l'sais d'abord ? À l'analyse appliquée du template de la page de commentaire, vous auriez pu le comprendre vous-même ;-)

Dans un premier temps le code devient :

{comments assign="comment" lastn="7" posts="posts"}
{if $comment.first}
<ul>
{/if}
<li>
<a href="{$comment.permalink}">"{$comment.post|truncate:50:"..."}"
{$comment.authorname|truncate:50:"..."}
{t}a dit :{/t}
<a href="{$comment.permalink}#c{$comment.id}">"{$comment.source|truncate:50:"... "}"</a>
</li>
{if $comment.last}
</ul>
{/if}
{/comments}

On remarque le nombre de commentaires affichés limité à 7, le changement de nom de module, qui devient « À propos », et l'ordre d'affichage des variables.

Nous ajouterons un peu de mise en forme :

  1. Le titre de la note commentée {$comment.post} sera en italique entre guillemets.
    Puisque son affichage est tronqué dans la colonne, nous l'afficherons in extenso dans une infobulle, en affectant title="..." au lien hypertexte.
  2. Le nom de l'auteur {$comment.authorname} du commentaire sera en gras,
  3. La mention « a dit : » n'aura pas de mise en forme,
  4. Le début du commentaire {comment.source} sera en italique entre guillemets.


Pour finir le code devient :

{comments assign="comment" lastn="7" posts="posts"}
{if $comment.first}
<ul>{/if}<li>
<a href="{$comment.permalink}" title="{$comment.post}"><i>"{$comment.post|truncate:50:"..."}"</i> </a>
<b>{$comment.authorname|truncate:50:"..."}</b>
{t} a dit&nbsp;: {/t}
<a href="{$comment.permalink}#c{$comment.id}"><i>"{$comment.source|truncate:50:"... "}"</i></a>
</li>
{if $comment.last}
</ul>
{/if}
{/comments}

On peut préférer le code ci-dessous pour une formulation plus proche de l'originelle du genre : [Derniers commentaires] / [auteur du commentaire] sur "titre de la note", : "[début du commentaire]"

{comments assign="comment" lastn="10" posts="posts"}
{if $comment.first}
<ul>{/if}<li>
{$comment.authorname|truncate:50:"..."}{t} sur {/t}<a href="{$comment.permalink}" title="{$comment.post}"><i>"{$comment.post|truncate:50:"..."}"</i></a>
{t}&nbsp;: {/t}
<a href="{$comment.permalink}#c{$comment.id}"><i>"{$comment.source|truncate:50:"... "}"</i></a>
</li>
{if $comment.last}
</ul>
{/if} {/comments}

En vrai, mon code est un peu différent, à cause du design, mais il y a aussi une fonctionnalité que j'expliquerai plus tard.

Avisés lecteurs, n'oubliez pas de prolonger votre lecture par la note détaillant la création d'un nouvel élément. Vous verrez notamment que vous pouvez essayer cette personnalisation sans prendre de risque.

Commentaires

c'est comme vous voulez ! lol en tous cas moi j'aime bien votre billet.

Écrit par : Wiki | 02.04.2009

Répondre à ce commentaire

Merci "Wiki", revenez quand vous voulez.

Écrit par : Gee Mee | 02.04.2009

Répondre à ce commentaire

Gee Mee, dites-lui plutôt "ne revenez pas quand vous voulez".
Je crois que "Wiki" n'existe pas : c'est un spam que j'ai déjà reçu, avec le même genre de phrase passe-partout.

Pardon à l'intéressé si je me trompe !

Écrit par : See Mee | 13.05.2009

Répondre à ce commentaire

Bonjour, j'ai un souci avec cette méthode...quand j'applique votre code sur mon blog, le module des commentaires avec l'affichage du début des commentaires sur ma colonne, fonctionne parfaitement par contre ça met en l'air tout le blog, le corps du blog se déplaçant dans la colonne de droite...J'imagine qu'il doit y avoir une erreur de code ?

Écrit par : Isa | 07.10.2009

Répondre à ce commentaire

Oups j'ai trouvé ! En fait dans votre tuto il n'apparaît pas la ligne "{t}Recent comments{/t}" dont vous faîtes allusion...ne sachant pas comment faire, j'avais donc collé votre code mais en laissant la partie du code de mon css qui se trouvait avant "{t}Recent comments{/t}" ...ça ne marchait pas donc ^^ bref j'ai fais un nettoyage, ça fonctionne maintenant

merci pour votre blog, il est très bien fait

Écrit par : Isa | 07.10.2009

Répondre à ce commentaire

Ouf ! Je me demandais où était la faille. J'en profite pour modifier ma note, la ligne "{t}Recent comments{/t}" induit effectivement en erreur. Voyez, nous progressons ensemble ;-)

Écrit par : Gee Mee | 07.10.2009

Bonjour, je voulais vous demander si vous savez par quoi on doit remplacer "lastn=10" si on veut voir les premiers billets (ou com) au lieu des derniers?
D'avance merci

Écrit par : Alice | 24.11.2010

Répondre à ce commentaire

Bonjour Alice,

Il n'existe pas à ma connaissance de possibilité de tri inverse (le plus ancien d'abord) de l'affichage des notes et ou commentaires. D'ailleurs, je me permets de douter de la pertinence d'une telle démarche. Quel pourrait-être l'intérêt de toujours afficher la première note ou le premier commentaire... de l'existence du blog.
Par contre, effectuer une sélection dans ses notes et ou commentaires, puis les afficher dans une "liste de liens" peut être intéressant.

En espérant vous avoir été utile malgré tout.

Écrit par : Gee Mee | 26.11.2010

Merci d'avoir répondu en tous cas, c'est gentil de toujours prendre le temps.
Pour ce qui est de l'interet, je voulais seulement appliquer ce tri inverse à mes catégories pour que, pour prendre l'exemple de mon blog, quand quelqu'un clique sur la catégorie "Orgueil et Préjugés" pour voir tout ce qui se rapporte à ce livre, le premier billet soit la présentation du livre que j'avais faite au tout début. Cela me paraissait plus cohérent.
Merci encore et a bientot j'espère

Écrit par : Alice | 26.11.2010

Répondre à ce commentaire

Les commentaires sont fermés.