Christophe Jacquet - Mot-clé - Dotclear2020-06-06T16:28:28+02:00urn:md5:93f90aead91499e6909e12b0eb17fad3DotclearMigration vers Dotclear 2urn:md5:26b74482aa87f4dc5c2161ae001ef55c2008-12-20T12:51:00+01:002008-12-20T21:22:32+01:00ChrisJDotclearGeekeriesWeb<p>Ce blog fonctionne maintenant sous <a href="http://fr.dotclear.org/" hreflang="fr">Dotclear 2</a>. À noter :</p>
<ul>
<li>les catégories ont disparu ; elles sont maintenant remplacées par des <em>tags</em> appelés <em>mots-clés</em> ;</li>
<li>la charte graphique est inchangée ;</li>
<li>les URL des posts existants sont préservées.</li>
</ul>
<p><em>La suite de ce billet détaille quelques points techniques qui peuvent être utiles à d'autres.</em></p> <h3>Appel à du PHP depuis les templates Dotclear</h3>
<p>Le principal frein au passage de ce blog à Dotclear 2 était qu'il devait s'intégrer dans la « charte graphique » du site, laquelle est générée par du PHP. J'avais donc <em>hacké violemment</em> (et gorettement) les <em>templates</em> PHP de Dotclear 1 pour faire les bons appels. Dotclear 2 faisant appel à un moteur de templates « type XML », j'avais quelques appréhensions...</p>
<p>En réalité, il est très facile d'intégrer des appels PHP dans un thème Dotclear 2, il faut juste le faire de façon un peu détournée, mais finalement assez propre. En gros, je devais appeler une fonction en début de page, et une en fin de page : ces fonctions créent le gabarit standard du site. Et bien j'ai décidé de créer une balise <code><tpl:CJPage></code>, dans laquelle j'englobe toute la page. Rien de plus facile, il suffit de déclarer cette balise dans le fichier <code>_public.php</code> <em>du thème</em> et de l'implémenter en PHP. Tout est expliqué <a href="http://franck.paul.free.fr/dotclear/?2007/06/28/1071-dotclear-2-et-les-templates-7" hreflang="fr">chez Franck Paul</a>.</p>
<p>Je voulais également afficher des messages au-dessus des billets correspondant à certains critères (réclame pour la <a href="http://www.eyrolles.com/Sciences/Livre/9782212122442" hreflang="fr">mémento LaTeX</a>, lien vers la <a href="https://jacquet.xyz/pic/" hreflang="fr">page des PIC</a>) :</p>
<ul>
<li>pour un affichage conditionnel basé sur la catégorie du billet, cela a pu se faire très simplement avec <code><tpl:EntryIf category="..."></code> ;</li>
<li>pour un affichage conditionnel en fonction du titre du billet, j'ai dû écrire un peu de PHP, mais rien de bien méchant.</li>
</ul>
<h3>Personnalisation des textes générés par Dotclear</h3>
<p>Si certains des textes générés par Dotclear ne vous plaisent pas, il est possible de redéfinir les chaînes de localisation directement depuis <code>_public.php</code>, par exemple :</p>
<pre>$GLOBALS['__l10n']['previous entries'] = 'billets plus anciens';</pre>
<h3>Migration des URL</h3>
<p>Il existe un plugin dc1redirect, mais j'ai préféré faire le kéké avec le <code><a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html" hreflang="fr">mod_rewrite</a></code> d'Apache. C'est réglé en quelques lignes : les URL des billets sont préservées, seules les URL des catégories et des mois deviennent invalides, mais cela m'importe peu. Plus précisément, comme toutes les URL ont une nouvelle forme, il y a une redirection 301 depuis l'ancienne forme.</p>Puburn:md5:430d171663757ff8e98984b5ed4b9d752007-01-03T19:12:00+00:002008-12-20T13:32:17+00:00ChrisJDotclearWeb <p>Pour de savoureuses recettes, ma chère et tendre met en ligne un blog de cuisine : <a href="http://sav-hourra.fr/" hreflang="fr">Sav'Hourra</a>. Il n'y a que deux recettes pour le moment, mais n'hésitez pas à y retourner : de nombreuses autres sont en gestation ! Comme je bêta-teste ces recettes tous les soirs (c'est-à-dire que je mange ; n'allez pas imaginer autre chose), je peux vous affirmer que c'est délicieux.</p>
<p>Je me suis chargé de la mise en place technique. Le blog fonctionne sous <a href="http://www.dotclear.net/" hreflang="fr">Dotclear 2</a>, qui décidément a l'air très bien. Notamment, la création d'un thème se fait principalement en modifiant un fichier CSS, et éventuellement en retouchant des fichiers <em>templates</em> : il n'y a pas une seule ligne de PHP à écrire, ce qui est très agréable...</p>