Nota SPIP-Contrib : Cette contrib à fait débat avant sa publication sur les sujets de la consommation de ressources engendrée par les expressions rationnelles, et de son efficacité réelle contre les spammeurs. Il apparaît que ce débat sera plus profitable et instructif pour tous mené via le présent forum public plutôt qu’en privé, d’où cette mise en ligne. A noter pour exemple que cette méthode est utilisée entre autres sur Wikipedia pour la gestion des liens sortants.
Mise à jour : Lors du débat concernant cette fonctionnalité, on m’a très justement fait remarquer que l’utilisation de l’expression eregi_replace n’était pas forcément adaptée. Le code ci-après a donc été modifié par la fonction str_replace qui par contre l’est plus.
Principe
Suite au spam massif des commentaires de blogs (Une catégorie de spammeurs cherche principalement à obtenir des liens vers leurs sites afin d’en accroitre la popularité) , les principaux moteurs de recherche (Google, Yahoo, MSN) se sont entendus en 2005 afin de mettre en place une balise HTML « bloquante » sur certains liens. Cette dernière permet en quelques sortes de signaler aux moteurs de recherche qu’un lien ne doit pas être suivi et donc pas pris en compte dans le calcul de popularité d’un site web. Cette balise est rel=nofollow et s’emploie de la sorte :
<a href='http://www.site.tld' rel='nofollow'>site à visiter</a>
Ce code rel=« nofollow » n’empêche bien entendu pas les visiteurs ou spammeurs de poster des liens, mais cherche surtout à décourager ceux qui ne cherchent qu’à accroitre la popularité de leur site, en leur faisant savoir que les liens posés ne seront pas pris en compte par les moteurs
Afin de protéger les commentaires d’un de mes sites j’ai donc mis au point une petite fonction toute simple qui permet de rajouter un rel="nofollow"
sur tous les liens présents dans le texte.
Pour utiliser cette fonction vous devez donc avoir à la racine de votre site SPIP un fichier mes_fonctions.php (à partir de la version 1.9) ou mes_fonctions.php3 pour les versions antérieures. Si ce fichier n’existe pas créez le. Vous pouvez avoir un topo sur l’utilisation de ce fichier sur le site officiel SPIP : http://www.spip.net/fr_article901.html
Installation
Dans ce fichier vous mettez ces quelques lignes :
<?
// Ajout de nofollow sur les liens (pas mal à utiliser sur les commentaires pour éviter le spam)
function nofollow($texte){
$texte=str_replace("<a href","<a rel='nofollow' href",$texte);
return $texte;
}
?>
Utilisation
Vous pouvez alors utiliser ce filtre comme un filtre normal sur les balises de texte et principalement comme moi les commentaires de vos articles
[(#TEXTE|nofollow)]
Si vous souhaitez également mettre cette balise nofollow sur le lien hypertexte proposé dans le forum allez dans le squelette inc_forum.html et cette fois-ci rajouter rel=« nofollow » dans le lien texte
<:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out" rel="nofollow">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a>
Mais là rien à voir avec la fonction présenté ci-dessus.
Pour vos utilisateurs
Signalez quelque part sur votre site que des rel=« nofollow » sont placés sur les liens des commentaires.
Quelques ressources traitant de la balise rel=« nofollow »
La spécification rel=« nofollow »
- http://microformats.org/wiki/rel-nofollow-fr
- http://googleblog.blogspot.com/2005/01/preventing-comment-spam.html
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |