Voici une évolution du filtre j’ai de la chance pour spip qui, ma foi, rend la contrib pour le moins indispensable.
Je réexplique la fonctionnalité pour ceux qui n’auraient pas encore compris. C’est un filtre de contenu auquel correspond un nouveau raccourci : [!quelque chose]
Ex : quand j’écris [!spip]
dans un article, il est transformé en un lien qui renvoie vers http://www.spip.net
Cà évite de taper l’url en entier chaque fois qu’on en a besoin.
Comment çà marche ? C’est tout simple, j’utilise la fonction « J’ai de la chance » de Google [1].
Ce qui fait que si j’écrit [!spip]
, cela produit l’url http://www.google.fr/search?hl=fr&q=spip&btnI= [2] qui redirige automatiquement vers le site de spip.
Quoi de neuf dans la version II ? Et bien maintenant plutôt que d’avoir http://www.google.fr/search?hl=fr&q=spip&btnI=
dans votre article, maintenant vous avez la vraie url, soit http://www.spip.net
.
Pour ce faire, j’ai utilisé la fonction de Metin Arman qui permet de renvoyer l’ultime redirection produite par une url.
Pas mal non ?
Mais on peut s’en servir pour d’autres utilisations. Exemple, un glossaire par mot clé synonyme, c’est à dire dont le mot clé n’est pas défini dans la base.
Si je créé ce raccourci wikipedia [?Appliquette]
( ex : Appliquette), Wikipedia renvoie sur le moteur de recherche car aucun lien n’a été défini pour ce mot. On voit d’ailleurs dans les résultats que le premier est le bon : applet.
On va modifier le code ci-dessous pour que le raccourci renvoie directement sur la page pour applet. C’est simple, il suffit d’ajouter dans la requête de google (le paramètre q de l’url) :
site:fr.wikipedia.org
Ce qui donne :
return preg_replace('@\[\!(.+?)\]@e', "'<a class=\"spip_out\" href=\"'.getLocation('www.google.fr', '/search?hl=fr&q='.urlencode('\\1').'+site%3Afr.wikipedia.org&btnI=').'\">\\1</a>'", $texte);
On pourrait même utiliser plusieurs glossaires et renvoyer la définition de celui qui est le plus pertinent pour le mot clé !
Pour installer ce filtre dans votre site SPIP, éditez le ficher ecrire/mes_options.php3 et insérez les lignes suivantes :
/*
* +----------------------------------+
* Nom du Filtre : J'ai de la chance II
* +----------------------------------+
* Date : mercredi 12 septembre 2006
* Auteur : Balluche + balluche PtJ free.fr
* +-------------------------------------+
* Fonctions de ce filtre :
* Appelle la fonction "J'ai de la chance" de Google sur un mot clé
* +-------------------------------------+
*
* Pour toute suggestion, remarque, proposition d'ajout
* reportez-vous au forum de l'article :
* http://balluche.free.fr/?992/Le-filtre-J-ai-de-la-chance-II
*/
//author : Metin Arman on 27/01/2002 for zend forums
//url : http://www.zend.com/phorum/read.php?num=3&id=14652&thread=14626
function getLocation($host, $path ='/')
{
$http_ver = '1.0'; // version 1.0 ar 1.1
$fp = fsockopen ($host, 80, $err_no, $err_str, 30);
if (!$fp) {
echo "ERROR: $err_str ($err_no)<br>\n";
}
else {
if ($http_ver == '1.0') {
fputs ($fp, "GET ".$path." HTTP/1.0\r\n\r\n");
}
else {
fputs ($fp, "GET ".$path." HTTP/1.1\r\nHost:".$host."\r\n\r\n");
}
while (!feof ($fp)) {
$line = fgets($fp, 4096);
if (eregi("location:", $line)) {
$headers_tmp = split(" ", $line, 2);
$location = trim($headers_tmp[1]);
break;
}
else {
$location = 0;
}
}
fclose ($fp);
}
return $location;
}
//balluche:24/02/2006:Appelle la fonction "J'ai de la chance" de Google sur un mot clé
//12/07/2006:j'utilise la fonction de Metin Arman pour récupérer l'url finale
function chance($texte)
{
return preg_replace('@\[\!(.+?)\]@e', "'<a class=\"spip_out\" href=\"'.getLocation('www.google.fr', '/search?hl=fr&q='.urlencode('\\1').'&btnI=').'\">\\1</a>'", $texte);
}
//si cette fonction existe déjà, il faut insérer les lignes avant le return
function avant_propre($texte) {
$texte = chance($texte);
return $texte;
}
// FIN du Filtre chance
?>
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 : |