Include dans Dotclear 2

Ce billet date de plusieurs années, ses informations peuvent être devenues obsolètes.

On m'a demandé à plusieurs reprises d'expliquer la manière dont j'ai fait mes includes php dans le code des templates de la dernière beta de Dotclear 2. Je me suis inspiré de 2 sources : un post du forum de Dotclear et un post sur elaboration.be.

Ce que j'ai fait : j'ai créé un fichier _public.php dans le dossier de mon thème, en y incluant le code suivant :

<?php

// On ajoute une variable au système de template
$core->tpl->addValue('myinclude', 
array('myinclude','tplMyInclude'));

// On défini la classe qui va gérer tout ça
class myinclude {
 public static function tplMyInclude($attr) {
  if (!isset($attr['src'])) { return; }
  $src = $attr['src'];
  return '<?php include("' . $src . '"); ?>';
 }
}

?>

Puis pour faire un include dans un template html de Dotclear :

{{tpl:myinclude src="monfichier.html"}}

Avant Firebug 1.0 Après MacFUSE

Tag Kemar Joint