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

Rechercher les contributions d'un auteur, les commentaires d'un pseudo, sur son propre blog

Tous les blogs Hautetfort peuvent disposer d'un moteur de recherche facile à mettre en place, et relativement efficace. Sauf que cela ne suffit pas toujours. (Actualisation d'une note datée du 25 mai 2009)

Le moteur de recherche interne proposé par la plateforme se met en place très facilement, puisqu'il suffit de se rendre dans la gestion du contenu des colonnes pour ajouter cet élément. Difficile de faire plus simple. Nous pouvons en changer l'apparence, le texte du bouton, mais ce n'est pas le propos du jour.
Ce moteur recherche dans le corps des notes, ce qui est un minimum est aussi son maximum. Soyons juste, cette fonctionnalité satisfait l'essentiel de mes besoins, et vraisemblablement des vôtres. On peut soumettre des mots comme des expressions, et les résultats n'ont rien d'aberrant. Mais il n'y aura pas de recherche possible sur les auteurs de notes ou de commentaires, et pas plus dans le texte de ces derniers.



Qu'ont-ils déjà écrit ?
Je voudrais parfois disposer d'une fonctionnalité simple permettant de lire toutes les contributions d'un "commentateur" sur un même blog, ou toutes les contributions d'un auteur particulier sur un blog collectif. À défaut de la trouver chez les autres, je vous la propose chez moi.

google_recherche_avancee.jpgC'est relativement facile à obtenir avec les fonctions de recherche avancée de Google. Vous pouvez effectivement demander au moteur de n'afficher que les résultats provenant d'un même domaine (ou d'un de ses répertoires).

Dans la capture ci-contre, je recherche "See Mee" sur mon bog.

L'URL de la page de résultats est la suivante (j'ai ajouté des retours à la ligne pour vous en faire apprécier la longueur) :
http://www.google.fr/search?as_q=&hl=fr&num=10&btnG=Recherche+Google&as_epq=See+Mee
&as_oq=&as_eq=&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=geemee.hautetfort.com
&as_rights=&safe=images

On peut la réduire à :
http://www.google.fr/search?hl=fr&as_epq=See+Mee&...


et même à :
http://www.google.fr/search?hl=fr
&q=site%3Ageemee.hautetfort.com+%22See+Mee%22


L'expérience montre qu'une recherche avec la seule indication de l'auteur (ou commentateur) donne de trop nombreux résultats. Pour cette URL, nous avons 68 réponses (le 22 mai vers 12h) alors qu'il y a seulement 8 résultats uniques. Il vaut donc mieux chercher "Ecrit par See Mee" pour rechercher les signatures, et non les liens qui sont effectivement multiples.

Pour proposer une recherche dans Google, nous pourrions donc "juste" créer des liens hypertextes de recherche avancée, en donnant les bons paramètres. Comment l'automatiser ?

Dans l'élément de colonne "Derniers commentaires"
Dans l'élément proposé par défaut, vous ne diposez que d'une mention du type "See Mee sur L'avez-vous vu?". Au pseudo est attaché un lien pointant vers le commentaire, et au titre de la note un lien vers le début de la note. Vous pourriez éventuellement attribuer la recherche au pseudo et faire pointer le titre de la note vers le commentaire, mais ce serait rompre avec des usages établis.
Si vous ne voulez pas trop bousculer votre code, vous pouvez ajouter un [?] après le pseudo, auquel vous attribuerez l'URL de recherche.

{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>
<a href="http://www.google.fr/search?hl=fr&q=site%3Ageemee.hautetfort.com+%22ecrit par{$comment.authorname}%22"
title="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?"
name="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?" target=_blank>[?]</a>
{t}on{/t}
<a href="{$comment.permalink}">{$comment.post|truncate:50:"..."}</a>
</li> {if $comment.last}</ul>{/if} {/comments}

Dans le code personnalisé proposé dans la note "Afficher le debut d'un commentaire...", on a le titre de la note pour pointer vers celle-ci, le pseudo auquel est déjà attribué la recherche (j'avais rien dit ?) et le début du commentaire pour pointer vers celui-ci.

{comments assign="comment" lastn="9" posts="posts"}
{if $comment.first}<ul>{/if} <li>
<a href="{$comment.permalink}" title="{$comment.post}"><i>"{$comment.post|truncate:50:"..."}"</i></a>
<a href="http://www.google.fr/search?hl=fr&q=site%3Ageemee.hautetfort.com+%22ecrit par {$comment.authorname}%22" target=_blank title="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?" name="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?" >
<b>{$comment.authorname|truncate:50:"..."}</b></a> a dit&nbsp;:
<a href="{$comment.permalink}#c{$comment.id}"><i>"{$comment.source|truncate:50:"... "}"</i></a>
</li>
{if $comment.last}</ul>{/if}
{/comments}


Dans le pied de note

Il faudra intervenir dans le modèle de la page "Pied de la note", mais la démarche est similaire.

{$post.pubdate|date_format:"`$blog.time_format`"}
{t} Ecrit par {/t}
<a href="http://www.google.fr/search?hl=fr&q=site%3Ageemee.hautetfort.com+%22ecrit par {$post.user|authorname}%22" target=_blank title="Les autres contributions pour {$post.user|authorname} sur ce blog" name="Les autres contributions pour {$post.user|authorname} sur ce blog" >
{$post.user|authorname}</a> |


Dans le pied de commentaire

C'est un peu plus compliqué parce qu'il faudra intervenir dans le modèle de la page "Lien permanent". Notons toutefois que la recherche ne peut être attachée au pseudo, puisqu'il y a déjà le lien hypertexte pour accéder au site de l'auteur du commentaire. J'ai donc ajouté [?] avec une infobulle.

$comment.pubdate|date_format:"`$blog.date_format`"}&nbsp;
{t}Posted by:{/t} {link href="`$comment.authorlink`" text="`$comment.authorname`"}
<a href="http://www.google.fr/search?hl=fr&q=site%3Ageemee.hautetfort.com+%22ecrit par {$comment.authorname}%22"
title="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?"
name="{$comment.authorname} a laissé d'autres commentaires sur ce blog ?"
target=_blank>[?]</a>
{if $platform.commentsthread && !$comment.post_comment_parent}
<a href="#postcomment" onclick="respondComment({$comment.id})" >
{t}| Répondre{/t}</a>

Accessoirement, vous aurez remarqué que j'ai déplacé et renommé l'instruction "Répondre à ce commentaire".

Ce fonctionnement n'est pas idéal. Tant que les pages ne sont pas indexées par Google, elles ne peuvent évidemment pas remonter dans les résultats. Il y aura toujours un décalage entre Google et le contenu effectif du site.
Si vos commentateurs font une erreur de saisie, la recherche ne donnera rien, à moins que vous ne corrigiez vous-même dans l'administration.
Et pour distinguer les notes des commentaires, il faudrait marcher avec deux pieds. L'un pourrait commencer avec "Écrit par" et l'autre avec "Posté par", mais il faudrait que toutes les pages du blog soient ré-indexées par Google avant que cela ne devienne efficace.

Commentaires

Vraiment c'est une très bonne idée, très pratique et maline avec ça !
Voilà, je trouvais dommage qu'il n'y ait aucun commentaire sur cette note-là, qui vaut pourtant le détour, surtout qu'elle parle aussi de moi :D

Écrit par : See Mee | 27.05.2009

Répondre à ce commentaire

Je crains que cela ne fasse un peu "téléphoné" comme commentaire, mais merci quand même ;-)

Écrit par : Gee Mee | 27.05.2009

Les commentaires sont fermés.