2014 sept. 25
Par Franck - Développement - Lien permanent
Vous le savez déjà si vous lisez ce blog, la prochaine version 2.7 de Dotclear proposera plusieurs jeux de templates, deux plus précisément. Dorénavant les futurs thèmes pourront s'appuyer sur n'importe lequel de ces deux jeux et les plugins qui apportent de leur côté un affichage supplémentaire (comme par exemple le plugin ContactMe, Pages, Tags, …) pourront eux aussi proposer une alternative pour tout ou partie des jeux de template supportés.
Vous noterez au passage qu'à partir de la version 2.7 de Dotclear, les jeux de template utiliseront HTML5 et seront légèrement saupoudrés d'ARIA.
Voyons aujourd'hui comment adapter vos plugins à ce nouveau système.
En préambule je signale que tous les plugins existants continueront de fonctionner parfaitement s'ils ne sont pas adaptés en fonction des jeux de templates. En effet, par défaut, le jeu de templates mustek qui n'est autre que le jeu de templates du thème default de Dotclear, sera utilisé comme avec les versions précédentes.
Il est donc nécessaire d'adapter vos plugins seulement si vous souhaitez adapter ceux-ci au nouveau jeu de templates currywurst sur lequel est basé le thème Berlin[1] qui sera livré avec la version 2.7.
Pour adapter un plugin, suivez les étapes ci-dessous :
- Tout d'abord dans le dossier default-templates de votre plugin ajoutez un dossier mustek et placez-y le ou les templates existants du plugin.
- Ensuite ajoutez un dossier currywurst toujours dans le dossier default-templates de votre plugin, et placez-y une copie du ou des templates du plugin (vous pouvez, au passage, profiter de l'héritage/extension de currywurst, voyez les plugins Tags ou Pages de la version 2.7 en cours de développement).
- Enfin, au moment de déclarer le chemin d'accès à vos templates, ce qui se faisait auparavant par une ligne de code comme celle-ci :
$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates');
Vous devez dorénavant déterminer le bon chemin en fonction du thème actif. Ça se fait de cette manière :
$tplset = $core->themes->moduleInfo($core->blog->settings->system->theme,'tplset'); if (!empty($tplset) && is_dir(dirname(__FILE__).'/default-templates/'.$tplset)) { $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates/'.$tplset); } else { $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates/'.DC_DEFAULT_TPLSET); }
- N'oubliez pas d'incrémenter le numéro de version de votre plugin, puis, s'il est distribué sur la plate-forme DotAddict, de préciser que la version minimum compatible est la 2.7.
À noter que si vous devez basculer vos templates de XHTML à HTML5, il suffit de remplacer les premières lignes de ceux-ci, en général ressemblant à ceci :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Par cela :
<!DOCTYPE html> <html lang="{{tpl:BlogLanguage}}"> <head> <meta charset="UTF-8" />
Pour finir, sachez que si d'autres jeux de templates venaient à être distribués dans les prochaines versions de Dotclear, vous n'aurez plus qu'à fournir, si nécessaire, dans le dossier idoine, vos templates personnalisés, le code n'ayant plus à être modifié.
C'est tout pour aujourd'hui.
Note
[1] En cours de test sur mon blog.