Google Like

Cette petite fonctionnalité vous permettra d’afficher les résultats de vos recherches à la manière de Google.
Attention ! Cette contrib a fait l’objet d’une alerte de sécurité du CERT le 31 mai 2008 :

« L’analyse du code source a montré
la présence de faillesde type injection de code via une faille
de type XSS (Cross Site Scripting) au niveau de l’outil de recherche utilisé
sur le site web qui permettait d’injecter des liens vers des adresses
contenant des scripts malicieux vers le domaine "imagesoap.com".
Le problème proviendrait de la fonctionnalité
"Google Like" qui ne purgerait pas correctement ses entrées.


Merci de ne pas l’utiliser.

Présentation

Cette petite fonctionnalité vous permettra d’afficher les résultats de vos recherches à la manière de Google.

Elle fait appel en partie à PHP pour concaténer tout les éléments de recherche de SPIP.

Il faudra egalement vous assurer que votre PHP est compilé avec la librairie PCRE.
Il l’est par défaut depuis la version 4.2.0.

A l’exception de cela, l’inclusion du script se fait de manière traditionnelle, c’est-à-dire dans « mes_fonctions.php3 ».

Recherche de « futur » sur toolinux.com

Le systême a l’avantage d’être insensible à la casse au niveau de la requête mais respecte néanmoins celle-ci lors de l’affichage contextuel.

Mise en place

Dans mes_fonctions.php3 accessible à la racine de votre site (ou à créer si ce n’est pas le cas), ajoutez la fonction suivante :

function google_like($string){
	$query = rtrim(str_replace("+", " ", $_GET['recherche']));  
	$qt = explode(" ", $query);
	$num = count ($qt);
	$cc = ceil(200 / $num);
		for ($i = 0; $i < $num; $i++) {
			$tab[$i] = preg_split("/($qt[$i])/i",$string,2, PREG_SPLIT_DELIM_CAPTURE);
			if(count($tab[$i])>1){
				$avant[$i] = substr($tab[$i][0],-$cc,$cc);
	    	    	        $apres[$i] = substr($tab[$i][2],0,$cc);
		    	        $string_re .= "<i>[...]</i> $avant[$i]<b>".$tab[$i][1]."</b>$apres[$i] <i>[...]</i> ";
	       }
	 }
	 return $string_re;
}

Sur votre squelette recherche.html, dans votre boucle (ARTICLES), ajoutez le code suivant :

<?php 
$string = '[(#TITRE|supprimer_numero|texte_script) ]';
$string .= '[(#CHAPO|textebrut|texte_script) ]';
$string .= '[(#DESCRIPTIF|textebrut|texte_script) ]';
$string .= '[(#TEXTE|textebrut|texte_script)]';
echo google_like($string);
?>

Exemples en ligne

Ce filtre a été développé par Linagora à la demande de la mairie d’Aubervilliers dont voici un exemple d’utilisation en ligne : http://www.aubervilliers.fr/recherc...

Nous l’avons repris lors de la conception du site de toolinux.com : http://www.toolinux.com/recherche.p...

D’autres contributions à SPIP sont disponibles sur notre espace communautaire : http://www.linagora.org/rubrique32.html

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom