Trevis03 Posté 19 Novembre 2010 Partager Posté 19 Novembre 2010 (modifié) Bonjour, A l'instar de ce qui se fait beaucoup sur les forums ou blogs. Comment à partir d'un texte qui est posté par un tiers dans un forum, puis je créer une fonction automatique afin que si les mots clés qui m'intéressent dans le texte soient transformés en ancre ? Ex : une personne post dans mon forum : "j'aime bien cette guitare car elle à un bon son." Et que moi en tant qu'admin le mot 'guitare' m'intéresse pour ancrer un lien vers une page de mon site. L'ancre se fait de façon automatique merci de vos réponses Modifié 19 Novembre 2010 par Trevis03 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ernestine Posté 19 Novembre 2010 Partager Posté 19 Novembre 2010 Salut Trevis, A priori comme ça, je te dirai qu'il te faut premièrement un tableau de correspondances entre mot clé et article correspondant. Ce tableau peut-être une simple variable dans le php, ou carrément une table dans la base de données. Ensuite, chaque fois qu'un commentaire est posté, il faut faire passer le commentaire dans une fonction qui va remplacer les mots clé par les liens correspondants, en utilisant la syntaxe de ton site (bbcode, html, etc) Lien vers le commentaire Partager sur d’autres sites More sharing options...
karnabal Posté 19 Novembre 2010 Partager Posté 19 Novembre 2010 Tu peux regarder du côté de ce qui est fait pour le plugin WordPress Keyword Autolink par exemple, c'est exactement le principe que tu décris. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Trevis03 Posté 19 Novembre 2010 Auteur Partager Posté 19 Novembre 2010 ok merci. C'est vrai c'est ce que je veux mais c'est adapté pour WordPress et je ne sais pas comment le rendre compatible avec mon site dans lequel je crée du contenu mais qui n'est pas un blog ni un forum Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bigb06 Posté 21 Novembre 2010 Partager Posté 21 Novembre 2010 Voici un bout de code que j'utilise pour un de mes sites (definition est un objet...) : function add_link_definition($html) { global $count,$def; // les éléments html à exclure static $balises_exclues=array('h[1-6]','a'); // le traitement regex if(!is_array($html)) { if(!is_string($html)) return $html; $balises=implode('|',$balises_exclues); $mots=implode('|',array_map('preg_quote',$def->getKeywords())); $regex='#<('.$balises.')[\s>].+?</\1>|<[^>]+>|(?<=\W)('.$mots.')(?=\W)#si'; return preg_replace_callback($regex,__FUNCTION__,$html); } if(isset($html[2])&& $count == 0){ $count++; return '<a href="/definitions/'.clean_url($def->getWord()).'-'.$def->getId().'.html">'.$html[0].'</a>'; } else{ return $html[0]; }} foreach($definitions as $definition){ $def=$definition; $count = 0; $string = add_link_definition($string); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
thick Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 Contrairement à ce qu'on trouve sur les sites qui utilisent cette bidouille, je mettrais une condition pour limiter le nombre de liens. Au lieu de faire bêtement des liens sur tous les mots clés identiques sur la page, il suffit de lier les 2 ou 3 premières occurrences ou même seulement la première pour être plus naturel, donc plus efficace. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bigb06 Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 Contrairement à ce qu'on trouve sur les sites qui utilisent cette bidouille, je mettrais une condition pour limiter le nombre de liens. Au lieu de faire bêtement des liens sur tous les mots clés identiques sur la page, il suffit de lier les 2 ou 3 premières occurrences ou même seulement la première pour être plus naturel, donc plus efficace. Bonjour, Si vous aviez lu le code, vous auriez vu qu'il ne créé un lien que pour la première occurrence. Lien vers le commentaire Partager sur d’autres sites More sharing options...
karnabal Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 Thick ne faisait pas particulièrement référence à ton site. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ernestine Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 En quoi est-il plus naturel de faire un lien uniquement sur la première occurrence ? Les gens ne lisent pas forcément un article à partir du début (surtout s'ils cliquent sur "Aller à" sur Google qui les amène dans un paragraphe de la page, ou même sur n'importe quel lien qui les amène sur une ancre précise à l'intérieur de la page), un lien est une invitation à prendre plus d'informations sur le mot linké, etc. Sur Wikipedia, ils font souvent un lien sur chaque occurrence d'un mot, même si le mot apparaît 20 fois dans l'article. Je ne prends pas Wikipédia comme modèle, loin de là, mais sur ce point précis, je ne pense pas qu'on puisse dire ni que ce n'est pas naturel, ni que ça pénalise leur référencement. Ce qui n'est pas naturel, selon moi, c'est d'avoir différents libellés de liens pour des liens qui pointent vers une même page. Sauf si ces liens pointent vers des ancres précises dans cette page bien sûr, et dans ce cas ça prend tout son intérêt. Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 Personnellement, avoir trop de liens me fait fuir ! Il ne faut pas non plus en abuser, surtout pour un système non indispensable tel que celui-ci ! Je suis également partisan de ne faire qu'un seul lien par occurence. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ernestine Posté 23 Novembre 2010 Partager Posté 23 Novembre 2010 Dans le cas particulier de Trevis03 (faire automatiquement des liens dans le contenu des messages de son forum), je pense que l'idéal serait de ne même pas faire de liens du tout. Qui écrit le message? Un visiteur du forum. Transformer un mot en lien, c'est transformer ce que la personne a écrit, ce n'est pas très respectueux. Qui nous dit qu'il va approuver les pages qui seront ainsi linkées ? Le visiteur sera-t-il content de constater que son propre message est rempli de liens vers des pages qu'il ne connaît pas, peut-être même avec des pages sur lesquelles il serait en désaccord complet ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
thick Posté 24 Novembre 2010 Partager Posté 24 Novembre 2010 Si vous aviez lu le code, vous auriez vu qu'il ne créé un lien que pour la première occurrence. Effectivement, je n'ai pas regardé le script. Mon conseil était d'ordre général (merci _AT_Karnabal) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant