Hack DotClear : Ajout de Tags Technorati

Je viens de finir un petit 


Voici la liste des modifications à réaliser (pour Dotclear 1.21/1.22) :
- Ouvrir le fichier /inc/classes/class.wiki2xhtml.basic.php
- Remplacer le bout de code suivant :
$this->tags = array( 'em' => array("''","''"), 'strong' => array('__','__'), 'acronym' => array('??','??'), 'a' => array('[',']'), 'img' => array('((','))'), 'q' => array('{{','}}'), 'code' => array('@@','@@'), 'anchor' => array('~','~'), 'del' => array('--','--'), 'ins' => array('++','++'), 'note' => array('$$','$$'), 'word' => array('¶¶¶','¶¶¶') );
par :
$this->tags = array( 'em' => array("''","''"), 'strong' => array('__','__'), 'acronym' => array('??','??'), 'a' => array('[',']'), 'img' => array('((','))'), 'q' => array('{{','}}'), 'code' => array('@@','@@'), 'anchor' => array('~','~'), 'del' => array('--','--'), 'ins' => array('++','++'), 'note' => array('$$','$$'), 'word' => array('¶¶¶','¶¶¶'), 'tag' => array('§§','§§') );
- Recherchez le switch ($tag) et ajouter à l'intérieur des parenthèses :
case 'tag': $res = $this->__parseTag($res,$tag,$attr,$type); break;
- Rechercher la fonction parseAnchor() et ajouter la fonction ci-dessous juste avant celle-ci :
function __parseTag($str,&$tag,&$attr,&$type) { $name = $this->protectAttr($str,true); return '<a href="http://technorati.com/tag/'.$name.'" rel="tag" class="tag">'.$name.'</a> <img src="/public/images/technobubble.gif"/>'; }
Je reconnais que c'est très crade comme bout de code .. mais ça marche ... .
Ensuite, pour ajouter des tags Technorati à vos billet DotClear il vous suffira d'utiliser deux '§' avant et après les mots que vous désirez.


Commentaires
Tiens, tu va peut etre pouvoir me dire à quoi ca sert les tags technorati ?
J'en vois depuis un moment, mais impossible de comprendre à quoi ca sert...
Cela permet à technorati de référencer ton tickets par mots clef et en même temps de permettre aux visiteurs de ton site d'aller visiter les articles référencés sur Technorati correspondants à ces mêmes mots clef
Bon, en tout cas, j'ai testé, et ton hack marche plutot bien
en tout cas, il fait ce qu'on lui demande...
Par contre n'oublie pas d'utiliser le plugin "Ping" à chaque nouveau Billet sur ton blog si tu veux que Technorati référence tes nouveaux billets rapidement
ouais, je sais, ca fait un moment que je l'ai installé, je m'en servais plus depuis un moment, mais là, je vais me relancer...
t'a pas une idée sur comment automatiser le ping ? C'est chiant d'aller cliquer, faudrait arriver à faire en sorte que lorsque tu enregistre, hop, ca ping direct...
Le ping automatique est prévu dans les prochaines version de DotClear .. En attendant ça doit être possible en faisant un appels direct au pluggin "Ping" à chaque nouveau post.
ouaip
faudra que je regarde ca dès que j'aurai un peu de temps
Salut ami puteolien
j'en connais un qui c'est fait chié dans le code !!!
Néanmoins bien joué, c'est parfait!
merci !
y'a un bug avec les accents dans les tags, si on en met, la fonction protectAttr() renvoie une chaine vide...
Du coup, j'ai modifié un peu le truc pour que ca encode correctement les accents pour technorati (je sais pas ce que c'est comme encodage, mais en tout cas, y'a pas la fonction php toute faite...) bref, j'y suis allé à tatons et ça marche plutot pas mal :
function protectTags($str, $name=false)
{
$astr1 = array("à", "é", "è", "ê","ï", "ù", "î");
$astr2 = array("%C3%A0","%C3%A9","%C3%A8","%C3%AA","%C3%AF","%C3%B9","%C3%AE");
return str_replace($astr1, $astr2, $str);
}
donc au lieu d'appeler protectAttr() tu appel la nouvelle fonction et c'est niquel !
voilu voilu