DotClear 2 en test

Aller au contenu | Aller au menu | Aller à la recherche

Vendredi 13 juillet 2007

Pour la protection des trackbacks

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 )

Jeudi 12 juillet 2007

Pour personnaliser certains messages déjà prédéfinis

Copier le fichier /locales/fr/public.lang.php dans son thème dans themes/monthème/locales/fr/

Faire les personnalisations dans ce fichier copié.

Dans le thème, au niveau du fichier _public.php (s'il n'existe pas le créer),rajouter cette instruction :

<?php l10n::set(dirname(FILE).'/locales/'.$_lang.'/public'); ?>

Lundi 9 juillet 2007

Pour ouvrir les liens externes dans une nouvelle fenêtre

mettre dans un widget texte ce code :

<script type="text/javascript">
var a = document.getElementsByTagName('a');
var re = new RegExp("^http(s?)://" + window.location.host);
for (var i=0;i<a.length;i++) {
if (!a[i].href.match(re)) {
a[i].onclick = function() {
window.open(this.href); return false;
}
}
}
</script>