Dans Dotclear, les thèmes héritent d'un jeu de fichiers de templates, à choisir parmi 2 disponibles : mustek (utilisé par défaut si le thème ne spécifie pas le jeu dont il hérite) ou dotty. Si un thème ne fournit pas des versions spécifiques des templates home.html, post.html, category.html, etc. , Dotclear utilise les fichiers présents dans le jeu de templates 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’apparaît 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', /* Id du Parent */ 'blueSilence' );
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)