Pour la protection des trackbacks
Par 1loup le vendredi 13 juillet 2007, 01:31 - Lien permanent
Attention : Intervention au coeur de DotClear : Ce n'est pas bien du tout !!!
- Dans inc/prepend.php, cherchez "trackback" pour trouver cette ligne :
$core->url->register('trackback','trackback','^trackback/(.+)$',array('dcUrlHandlers','trackback'));
Remplacez chaque occurence de trackback par tada (par exemple)
$core->url->register('tada','tada','^tada/(.+)$',array('dcUrlHandlers','tada'));
- Dans inc/public/lib.urlhandlers.php, cherchez cette fonction :
public static function trackback($args) { if (!preg_match('/^0-9+$/',$args)) { self::p404(); } else { $tb = new dcTrackback($GLOBALS'core'); $tb->receive($args); exit; } }
et remplacez function trackback par function tada
- L'url de rétrolien apparaitra sans le trackback (avec index.php//numero au lieu de index.php/trackback/numero), il faut donc indiquer au lecteur de mettre tada entre)
- Eventuellement, remplacez l'espace libre (//) en allant dans inc/core/class.dc.rs.entensions.php
Cherchez :
public static function getTrackbackLink(&$rs) { return $rs->core->blog->url.$rs->core->url->getBase('trackback').'/'.$rs->post_id; }
et remplacez $rs->core->url->getBase('trackback') (soit ce qui est entre les deux points) par ce que vous voulez qui apparaisse ! (mais dans ce cas, cette url est visible par les robots et c'est celle qui est transmise pour la recherche automatique des url )

Commentaires