Dans Dotclear, tous les thèmes héritent systématiquement du thème "default". Si un thème ne fournit pas des versions spécifiques des templates home.html, post.html, category.html, etc. , Dotclear 2 utilise les fichiers présents dans le thème "default" pour effectuer un rendu des pages.
Depuis la version 2.1 de Dotclear, on peut préciser quel est le parent d'un thème. Un thème est dit enfant quand il hérite d'un thème parent. Cela permet au thème enfant d'utiliser les fichiers templates du thème parent et évite ainsi de dupliquer tous les fichiers tpl.
Ce comportement est étendu aux fichiers PHP :
Ceci permet d'utiliser de nouvelles balises de templates et de nouveaux gestionnaires d'URL dans le thème enfant.
Ordre de recherche d'un fichier template lors du rendu :
Toute balise tpl (comme {{tpl:BlogThemeURL}}) pointera systématiquement vers l'URL du thème enfant, même si ce dernier n'apparait que dans un template fourni par le thème parent.
Elle se fait dans le fichier _define.php du thème "enfant" :
$this->registerModule( /* Name */ "Mon superbe thème", /* Description*/ "Exemple d'un thème enfant basé sur Blue Silence", /* Author */ "Pep", /* Version */ '1.0', /* Properties */ array( /* Id du Parent */ 'parent' => 'blueSilence', /* Configuration */ 'standalone_config' => false, /* Type */ 'type' => 'theme' ) );
Le thème "Mon superbe thème" est un enfant du thème "Blue Silence".
Important :
C'est l'identifiant du thème (le nom du dossier, iciblueSilence
) qui est utilisé pour définir le thème parent et non son nom (Blue Silence).
(merci à Pep pour l'article original)