J'ai commencé par m'occuper de la mise à jour de mes plugins. Pour deux raisons principalement :

  • Plusieurs de ces greffons sont publics, et certaines personnes en dépendent pour la mise à jour de leurs sites.
  • Il est difficile de migrer le reste de mon site s'il dépend de certaines extensions, et que ces extensions ne sont pas disponibles.

Au final, j'ai adapté le code de seize de ces greffons ; six d'entre eux ont également été (pour la première fois) publiés sur Dotaddict. Cela s'est passé en fait plus facilement et rapidement que je ne le craignais.

Ensuite, j'ai pu m'attaquer à un projet qui me trottait dans la tête depuis quelques semaines : ouvrir un nouveau blogue ! Depuis le mois de mars 2022, je publie sur Mastodon des critiques en deux cents quatre-vingts caractères de tous les spectacles et concerts que je vais voir. La limite en caractères m'est imposée car ces critiques sont ensuite automatiquement republiées sur le site à l'oiseau bleu. Parfois, je me sentais contraint par cette limite : envie de pouvoir en dire plus quelquefois, ou d'ajouter des photos pour illustrer d'autres fois. Ouvrir un nouveau blogue qui republierait automatiquement ces critiques me permettrait cela, et m'offrirait en plus un archivage sous mon contrôle de ces critiques.

Mais il me manquait le pont entre Mastodon et Dotclear. J'ai donc créé un nouveau plugin (nommé de manière très originale : MastodonImporter...), qui peut être appelé par un système de webcron, pour aller chercher les nouveaux statuts publiés sur Mastodon et importer sous forme de billets ceux qui ont le bon hashtag. Ce nouveau blogue est apparu en ligne il y a quelques jours. Il a probablement encore besoin d'un coup de décoration, mais il a le mérite d'exister : Un critique inutile de plus...

Au passage, j'ai pu me rendre compte de certaines limitations de la base de données de mes blogues : sur Mastodon, j'utilise des emojis pour indiquer s'il s'agit d'un spectacle de danse (💃), d'un concert (🎤), de théâtre (🎭), etc. Toutefois, si ma base de données MySQL était bien configurée en utf8 lors de sa création, dans les faits cela correspond à utf8mb3 (UTF-8 codé sur trois octets), qui ne supporte pas les emojis. Mes tentatives de migration de la base à utf8mb4 (UTF-8 codé sur quatre octets) s'étant avérées désastreuses, j'ai donc crée une nouvelle base ayant dès le départ le bon format.

J'ai ensuite pu m'attaquer à la migration de mes blogues existants, en commençant par les plus petits. Cela s'est moins bien passé que pour les plugins : certains détournent fortement le système d'archives pour proposer une navigation billet par billet sur la page d'accueil... Cela ne fonctionnait plus depuis un bon moment, et j'ai dû batailler pour réussir à corriger ce problème. Une fois les thèmes adaptés, la migration des données dans la nouvelle base s'est faite simplement avec le processus d'import / export par fichiers plats de Dotclear. J'ai également pu me rendre compte au passage que j'avais un grand nombre de greffons installés et qui ne me servaient pas vraiment à grand chose (dont plusieurs que j'ai développés personnellement et dont je n'ai plus aucun souvenir...)

Au final, j'ai pu presque tout migrer, sauf :

  • Un blogue qui dépend d'un plugin (gallery) qui ne semble plus être maintenu et n'est pas compatible avec DotClear 2.24. Il faudra que je voie si j'adopte et adapte moi-même cette extension.
  • Un blogue ouvert il y a longtemps pour que mon père puisse mettre à disposition sur Internet son cours de traitement du signal. Il ne fonctionne plus depuis un certain temps, et mon père a clairement exprimé il y a quelques années ne plus avoir d'intérêt à ce qu'il soit maintenu en ligne. À voir si je ne vais pas quand même essayer de le migrer, car j'ai de la peine à l'idée que de l'information disparaisse.
  • Lors de ces migrations, j'ai encore trouvé deux bogues dans mes extensions qu'il faudra que je corrige prochainement...
  • Et pour une raison que je ne comprends pas encore, le lien automatique vers la page de contact (fournie par l'extension ContactMe) ne fonctionne pas dans mes thèmes.

Maintenant que tout cela est fait, je vais pouvoir prendre du temps pour m'occuper d'un autre projet en PHP dont je m'occupe et qui a besoin de mise à jour pour la compatibilité avec PHP 8+.