Dotclear2 utilise un système de modèle puissant et souple. Ce système est fourni par clearbricks, un ensemble de scripts de base pour le développement php.
Les balises du système de modèle de clearbricks sont de deux types:
{{tpl:...}}, permettent de définir ou afficher des valeurs dans le modèle;<tpl:...>[...]</tpl>, permet de définir une boucle ou un bloc de code.Les balises de valeur sont de la forme générique :
{{tpl:tag [attr="value" [, attr="value" [...]]|str_attr]}}
Les fonctions gérant les balises de valeur ont une déclaration type de la forme suivante :
function tag($attr, $str_attr)
Les balises de bloc sont de la forme générique :
<tpl:tag [attr="value" [, attr="value" [...]]>content</tpl>
Les fonctions gérant les balises de bloc ont une déclaration type de la forme suivante :
function tag($attr, $content)
Pour générer la liste de balises directement à partir du code de dc2, j'ai utilisé le petit script shell suivant :
sed -n "\
/addBlock/ \
{ s/.*('\(.*\)',.*/<tpl:\1>/; p; };\
/addValue/ \
{ s/.*('\(.*\)',.*/{{tpl:\1}}/; p; };\
" src/dotclear/inc/public/class.dc.template.php