<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://dotclear.watch/feed/rss2/xslt" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DotclearWatch / Blog - Mot-clé - release</title>
    <link>https://dotclear.watch/</link>
    <atom:link href="https://dotclear.watch/feed/tag/release/rss2" rel="self" type="application/rss+xml" />
    <description>Suivez l'évolution du moteur de blogs Dotclear.</description>
    <language>fr</language>
    <pubDate>Wed, 29 Apr 2026 21:19:48 +0200</pubDate>
    <copyright>Tous droits réservés © Jean-Christian Denis</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <item>
        <title>Sortie de Dotclear 2.35</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.35</link>
        <guid isPermaLink="false">urn:md5:d28a3fb1ef8f77a8e8f76ef2c4567ed5</guid>
        <pubDate>Thu, 14 Aug 2025 01:05:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.35</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce mercredi 13 Aout 2025 sort la version 2.35 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;Cette version comme souvent perfectionne encore l'aspect graphique, l'accessibilité et le respect des normes. Je vous conseil de lire &lt;a href=&quot;https://fr.dotclear.org/blog/post/2025/08/13/Dotclear-2.35&quot; hreflang=&quot;fr&quot; title=&quot;Dotclear 2.35&quot;&gt;le billet d'annonce officiel&lt;/a&gt; pour plus d'informations.&lt;br&gt;
Du coté du blog Dotclear Watch, une pause d'une version (au moins) fait qu'il n'y aura pas de billets additionnels détaillant les changements techniques apportés durant cette période. Je vais essayer de modifier un peu le format de présentation pour décortiquer bien plus précisément les changements à l'avenir. Stay Tune.&lt;br&gt;
&lt;br&gt;
Et bon anniversaire Dotclear !&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.35#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.35#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/423</wfw:commentRss>
              </item>
          <item>
        <title>Sortie de Dotclear 2.33</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.33</link>
        <guid isPermaLink="false">urn:md5:b4816c7c288b07b2180a4e570c948ca8</guid>
        <pubDate>Thu, 13 Feb 2025 10:05:00 +0000</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.33</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce jeudi 13 Février 2025 sort la version 2.33 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://fr.dotclear.org/blog/post/2025/02/13/Dotclear-2.33&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.33&quot;&gt;Cette version&lt;/a&gt; améliore encore l'aspect graphique de l'interface, elle continue la migration des outils javascript, elle corrige quelques bugs, modifie la gestion des status et enfin ajoute la possibilité d'utiliser les sessions coté publique. On reparle de ces changements dans un &lt;a href=&quot;https://dotclear.watch/Billet/2.33&quot; hreflang=&quot;fr&quot; title=&quot;Détail de la version 2.33&quot;&gt;billet dédié&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.33#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.33#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/62</wfw:commentRss>
              </item>
          <item>
        <title>2.33</title>
        <link>https://dotclear.watch/Billet/2.33</link>
        <guid isPermaLink="false">urn:md5:d77dab362d1add5616e4d776e430e734</guid>
        <pubDate>Thu, 13 Feb 2025 10:04:00 +0000</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.33</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 13 Fevrier 2025, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2025/02/13/Dotclear-2.33&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.33&quot;&gt;cette version de Dotclear&lt;/a&gt; ouvre de nouveaux horizons pour les plugins.&lt;/p&gt; &lt;h5&gt;Résumé&lt;/h5&gt;

&lt;p&gt;Beaucoup d'amélioration continue dans cette version avec l'avancement de l'utilisation de Vanilla JS, des Helper\Form, des métadonnée de média... Mais également deux gros changements sur les statuts et le sessions public.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h5&gt;Nouveautés&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Amélioration de l'expérience utilisateur coté admin&lt;/li&gt;
&lt;li&gt;Amélioration de la gestion des média. (et de leurs métadonnées)&lt;/li&gt;
&lt;li&gt;Avancement de l'utilisation de Vanilla JS plutôt que JQuery&lt;/li&gt;
&lt;li&gt;Avancement de l'utilisation de Helper/Form coté admin&lt;/li&gt;
&lt;li&gt;Ajout d'un behavior &lt;a href=&quot;https://dotclear.watch/Billet/Requ%C3%AAte-sur-les-billets-en-2.33&quot;&gt;coreBlogBeforeGetPostsAddingParameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Harmonisation et &lt;a href=&quot;https://dotclear.watch/Billet/Les-status-en-2.33&quot;&gt;ouverture des status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Outils d'utilisation de session en Frontend&lt;/li&gt;
&lt;li&gt;Déplacement des schémas de base de données et de paramètres de blog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le &lt;a href=&quot;https://git.dotclear.org/dev/dotclear/src/branch/master/CHANGELOG&quot; hreflang=&quot;en&quot; title=&quot;Doclear CHANGELOG&quot;&gt;changelog complet&lt;/a&gt; est disponible sur le dépôt.
&lt;br&gt;&lt;/p&gt;

&lt;h5&gt;Aide&lt;/h5&gt;

&lt;p&gt;Afin de tester les modifications apporté à cette version de Dotclear, je propose 3 petits plugins utilisant ces nouvelles fonctionnalités. Ces plugins n'apportent pas grand chose par eux mêmes mais sont assez simple pour présenter et comprendre ces changements :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gestion de session publique : &lt;a href=&quot;https://github.com/JcDenis/FrontendSession&quot; hreflang=&quot;en&quot; title=&quot;Dépôt Github du plugin&quot;&gt;FrontendSession&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ajout de status de billet coté admin : &lt;a href=&quot;https://github.com/JcDenis/Proofreading&quot; hreflang=&quot;en&quot; title=&quot;Dépôt Github de plugin&quot;&gt;Proofreading&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ajout de status de billet et permissions utilisateur coté publique : &lt;a href=&quot;https://github.com/JcDenis/RestrictedReading&quot; hreflang=&quot;en&quot; title=&quot;Dépôt Github du plugin&quot;&gt;RestrictedReading&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/2.33#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/2.33#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/63</wfw:commentRss>
              </item>
          <item>
        <title>2.32.1</title>
        <link>https://dotclear.watch/Billet/2.32.1</link>
        <guid isPermaLink="false">urn:md5:e25fb07d4c6eb6a24a75ff6eca2d04d8</guid>
        <pubDate>Wed, 27 Nov 2024 12:00:00 +0000</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.32.1</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 27 novembre 2024 de la &lt;a href=&quot;https://fr.dotclear.org/blog/post/2024/11/27/Dotclear-2.32.1&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.32.1&quot;&gt;version de correction 2.32.1&lt;/a&gt; de Dotclear.&lt;/p&gt; &lt;p&gt;Pas de révolution, cette version corrige quelques bugs découvert juste après la sortie de la version 2.32.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>2.32</title>
        <link>https://dotclear.watch/Billet/2.32</link>
        <guid isPermaLink="false">urn:md5:a1cb84260ee82d72f962b80871107171</guid>
        <pubDate>Wed, 13 Nov 2024 10:15:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.32</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 13 Novembre 2024, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2024/11/13/Dotclear-2.32&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.32&quot;&gt;cette version de Dotclear&lt;/a&gt; n'apporte pas de gros changements pour les plugins et thèmes.&lt;/p&gt; &lt;h5&gt;Nouveautés :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Amélioration de l'expérience utilisateur coté admin&lt;/li&gt;
&lt;li&gt;Ajout d'un behavior coreGetPostURL&lt;/li&gt;
&lt;li&gt;Ajout d'attributs sur les composants Html/Form&lt;/li&gt;
&lt;li&gt;Correction sur la gestion du cache des templates&lt;/li&gt;
&lt;li&gt;Correction de la gestion d'authentification externe&lt;/li&gt;
&lt;li&gt;Correction des chemins générés dans le fichier config.php&lt;/li&gt;
&lt;li&gt;Ajout de l'utilisation de variables d'environnements pour la création du fichier config.php&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;Serveur :&lt;/h5&gt;

&lt;p&gt;Les deux dernières modifications énoncées ci-dessus vont permettre de proposer plus facilement des outils clés en main d'installation de Dotclear.&lt;br&gt;
&lt;a href=&quot;https://dotclear.watch/Billet/Images-Docker&quot;&gt;Un premier exemple&lt;/a&gt; qui est proposé est celui utilisant &lt;a href=&quot;https://www.docker.com/&quot; hreflang=&quot;en&quot; title=&quot;Site officiel Docker&quot;&gt;Docker&lt;/a&gt;. Très répandu, il permet en quelques lignes d'exécuter un serveur web complet avec Dotclear préinstallé. Le dépôt des images Docker de Doclear est disponible sur le &lt;a href=&quot;https://hub.docker.com/r/jcpd/docker-dotclear&quot; hreflang=&quot;en&quot; title=&quot;Images Docker Dotclear&quot;&gt;Hub Docker&lt;/a&gt;.&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/2.32#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/2.32#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/45</wfw:commentRss>
              </item>
          <item>
        <title>Sortie de Dotclear 2.32</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.32</link>
        <guid isPermaLink="false">urn:md5:4d7dba5b5fff64cad74e7926fa27d2d8</guid>
        <pubDate>Wed, 13 Nov 2024 10:00:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.32</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce mercredi 13 Novembre 2024 sort la version 2.29 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://fr.dotclear.org/blog/post/2024/11/13/Dotclear-2.32&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.32&quot;&gt;Cette version&lt;/a&gt; améliore encore l'aspect graphique de l'interface, elle corrige quelques bugs dont on reparle dans un &lt;a href=&quot;https://dotclear.watch/Billet/2.32&quot; hreflang=&quot;fr&quot; title=&quot;Détail de la version 2.32&quot;&gt;billet dédié&lt;/a&gt;, et pour la partie technique ajoute un behavior coreGetPostURL.&lt;br&gt;
&lt;br&gt;
Cette version ajoute sur le tableau de bord un module d'appel au don : Utilisez le, c'est pour la bonne cause !&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.32#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.32#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/49</wfw:commentRss>
              </item>
          <item>
        <title>Sortie de Dotclear 2.29</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.29</link>
        <guid isPermaLink="false">urn:md5:29b064702fafbda9e2c38f7976fd2c12</guid>
        <pubDate>Tue, 13 Feb 2024 12:00:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.29</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce mardi 13 Février 2024 sort la version 2.29 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;Après plusieurs versions modifiant profondément le cœur de Dotclear, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2024/02/13/Dotclear-2.29&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.29&quot;&gt;cette version 2.29&lt;/a&gt; reprend un rythme plus habituel. La mise à jour depuis une 2.28 ne devrait pas poser problème coté plugins et thèmes.&lt;br&gt;
En savoir plus en lisant &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.29&quot; hreflang=&quot;fr&quot; title=&quot;Description de Dotclear 2.29&quot;&gt;la description de version sur ce blog&lt;/a&gt;.&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.29#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.29#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/29</wfw:commentRss>
              </item>
          <item>
        <title>2.29</title>
        <link>https://dotclear.watch/Billet/Release-2.29</link>
        <guid isPermaLink="false">urn:md5:9dd85628a36252bc2e4d953bb57f7d76</guid>
        <pubDate>Sun, 11 Feb 2024 10:00:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.29</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 13 Février 2024, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2024/02/13/Dotclear-2.29&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officiel de Dotclear 2.29&quot;&gt;cette version de Dotclear&lt;/a&gt; n'apporte pas de gros changements pour les plugins et thèmes.&lt;/p&gt; &lt;h5&gt;Résumé&lt;/h5&gt;

&lt;p&gt;Après plusieurs versions compliquées pour les plugins et thèmes, cette version 2.29 ne casse pas la compatibilité pour les plugins et thèmes écrits pour la 2.28. Pas mal de nouveautés mais plus légères que lors des versions précédentes. A noter qu'un nouveau tableau de bord entièrement dédié à la gestion des mises à jour fait son apparition, il permettra de mieux séparer les processus liés aux mises à jours du reste du code et ainsi éviter le plantage complet d'un multiblog.&lt;/p&gt;

&lt;h5&gt;Nouveautés :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dotclear.watch/Billet/Gestion-de-mises-%C3%A0-jour&quot;&gt;Tableau de bord&lt;/a&gt; dédié à la gestion de mises à jour.&lt;/li&gt;
&lt;li&gt;Passage de JQuery à Vanilla pour divers fonctions,&lt;/li&gt;
&lt;li&gt;Possibilité de modifier les fichiers .php des thèmes,&lt;/li&gt;
&lt;li&gt;Ajout de behaviors.(adminPostAfterButtons, adminPageAfterButtons),&lt;/li&gt;
&lt;li&gt;Refonte des attributs des images,&lt;/li&gt;
&lt;li&gt;Changements de styles coté admin (notamment les boutons),&lt;/li&gt;
&lt;li&gt;Nombreuses retouches UI/UX/A11Y (voir le &lt;a href=&quot;https://git.dotclear.org/dev/dotclear/src/branch/master/CHANGELOG&quot; hreflang=&quot;en&quot; title=&quot;Changelog Dotclear sur gitea&quot;&gt;CHANGELOG&lt;/a&gt; )&lt;/li&gt;
&lt;/ul&gt;</description>
        
              </item>
          <item>
        <title>2.28.1</title>
        <link>https://dotclear.watch/Billet/2.28.1</link>
        <guid isPermaLink="false">urn:md5:445113ceab80c8feaa3936ab3cdc7b10</guid>
        <pubDate>Sun, 19 Nov 2023 09:43:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.28.1</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 19 novembre 2023 de la &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/11/19/Dotclear-2.28.1&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle Dotclear 2.28.1&quot;&gt;version de correction 2.28.1&lt;/a&gt; de Dotclear.&lt;/p&gt; &lt;p&gt;Aucun changement technique sur cette version n'a besoin d'explication. &lt;br /&gt;
Il faut suivre les évolutions apportées par la &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.28&quot;&gt;version 2.28&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Sortie de Dotclear 2.28</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.28</link>
        <guid isPermaLink="false">urn:md5:c54d3e2c3c66b821061874f6c5fd09b1</guid>
        <pubDate>Wed, 15 Nov 2023 18:25:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.28</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce mercredi 15 Novembre 2023 sort la version 2.28 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;Comme dit dans &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/11/15/Dotclear-2.28&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.28&quot;&gt;le billet d'annonce officielle&lt;/a&gt; et dans &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.28&quot; hreflang=&quot;fr&quot; title=&quot;Description de Dotclear 2.28&quot;&gt;la description de version sur ce blog&lt;/a&gt;, cette version finit la transition du moteur vers les espaces de noms PHP et passe les prérequis vers PHP 8.1 minimum. A noter que d'après les premiers essais, elle supporte très bien PHP 8.2 et 8.3.&lt;br&gt;
Cette mise à jour chamboule encore beaucoup le code et il est fortement conseillé de la faire en mode sans échec.&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.28#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.28#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/51</wfw:commentRss>
              </item>
          <item>
        <title>2.28</title>
        <link>https://dotclear.watch/Billet/Release-2.28</link>
        <guid isPermaLink="false">urn:md5:524b11a410a9976e870cb9d4742c0f06</guid>
        <pubDate>Fri, 13 Oct 2023 08:00:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.28</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 15 novembre 2023, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/11/15/Dotclear-2.28&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle de Dotclear 2.28&quot;&gt;cette version de Dotclear&lt;/a&gt; passe les prérequis de PHP de la version 7.4 à la version 8.1 minimum !&lt;/p&gt; &lt;h5&gt;Résumé&lt;/h5&gt;

&lt;p&gt;Cette version boucle &lt;em&gt;quasiment&lt;/em&gt; la transition vers les espaces de noms PHP avec le transfert du cœur de Dotclear et commence à en tirer partie. Le typage des variables, des propriétés de classes et méthodes devient plus strict et précis grâce au passage à PHP 8.1. La gestion du cœur de Dotclear est entièrement remaniée. Une nouvelle classe de lectures des valeurs de configuration fait son apparition. L'utilisation de My pour les modules est de plus en plus nécessaire et recommandé…&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Nouveautés :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Utilisation des avancées de PHP 8.1,&lt;/li&gt;
&lt;li&gt;Nombreuses classes &lt;a href=&quot;https://dotclear.watch/Billet/D%C3%A9placement-de-classes-en-2.28&quot;&gt;Déplacées&lt;/a&gt;, principalement liées au Core,&lt;/li&gt;
&lt;li&gt;Nombreuses variables, fonctions, méthodes et classes &lt;a href=&quot;https://dotclear.watch/Billet/Les-d%C3%A9pr%C3%A9ci%C3%A9s-en-2.28&quot;&gt;dépréciées&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Passage de &lt;a href=&quot;https://dotclear.watch/Billet/Les-d%C3%A9pr%C3%A9ci%C3%A9s-du-core-en-2.28&quot;&gt;dcCore en déprécié&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Nouvelle classe d'&lt;a href=&quot;https://dotclear.watch/Billet/Configuration-de-l-application-en-2.28&quot;&gt;accès aux valeurs de configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Nouvel accès aux &lt;a href=&quot;https://dotclear.watch/Billet/Le-conteneur-principal-en-2.28&quot;&gt;classes de premier niveau&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dotclear.watch/Billet/Remplacer-une-classe-de-premier-niveau-en-2.28&quot;&gt;Système de services&lt;/a&gt; pour les classes de premier niveau&lt;/li&gt;
&lt;li&gt;Nouvelles classes d'&lt;a href=&quot;https://dotclear.watch/Billet/Les-exceptions-de-premier-niveau-en-2.28&quot;&gt;Exception de premier niveau&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dotclear.watch/Billet/Permissions-de-modules-en-2.28&quot;&gt;Permissions de modules&lt;/a&gt; entièrement gérées par My&lt;/li&gt;
&lt;li&gt;Ajout du &lt;a href=&quot;https://dotclear.watch/Billet/Le-plugin-Uninstaller&quot;&gt;plugin Uninstaller&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Renforcement du typage des arguments et retours de méthodes.&lt;/li&gt;
&lt;li&gt;Travail sur la &lt;a href=&quot;https://dev.dotclear.org/code/2/&quot; hreflang=&quot;en&quot; title=&quot;Documentation doxygen Dotclear&quot;&gt;documentation doxygen&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Travail sur le niveau d'erreur d'analyseurs phpstan (niveau 8!), phpunit, psalm.&lt;/li&gt;
&lt;li&gt;Support du format media Avif&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Incompatibilités :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Les constructeurs des classes du Core ont de nouveaux arguments, les plugins instanciant eux-mêmes ces classes provoqueront un arrêt du script.&lt;/li&gt;
&lt;li&gt;Les tests de nullité sur des propriétés ou objets du Core (principalement) ne sont plus permis (des méthodes les remplacent) et provoqueront un arrêt du script.&lt;/li&gt;
&lt;li&gt;Des nombreuses méthodes ont vu leur typage explicitement déclaré, un arrêt du script sera provoqué par une classe qui étend une de ces classes sans avoir été mise à jour.&lt;/li&gt;
&lt;li&gt;La classe de gestion d'erreurs fatales introduite en 2.27 n'est plus compatible, ces anciennes méthodes sont simplement supprimées . (Seule la distribution l'utilise à ce jour)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;&lt;ins&gt;Information importante pour les développeurs :&lt;/ins&gt;&lt;/strong&gt;&lt;br /&gt;
C'est la première version nécessitant PHP 8.1 minimum, et PHP 8.2.x est supporté, et PHP 8.3.0 devrait l'être.&lt;br /&gt;
&lt;br /&gt;
Les informations distillées ici sont non exhaustives et pourront être complétées à l'avenir.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>2.27.3</title>
        <link>https://dotclear.watch/Billet/Release-2.27.3</link>
        <guid isPermaLink="false">urn:md5:d74e2ae0170ed22532eb0e85902342f9</guid>
        <pubDate>Thu, 31 Aug 2023 20:00:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.27.3</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie ce 31 aout 2023 de la &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/08/31/Dotclear-2.27.3&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle Dotclear 2.27.2&quot;&gt;version de correction 2.27.3&lt;/a&gt; de Dotclear.&lt;/p&gt; &lt;p&gt;Cette troisième version de correction de Dotclear 2.27 apporte quelques correctifs de bugs assez gênants mais qui ne nécessitent pas d'explications techniques ici.&lt;br /&gt;
Il faut suivre les évolutions apportées par la &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.27&quot;&gt;version 2.27&lt;/a&gt;.&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Release-2.27.3#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Release-2.27.3#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/59</wfw:commentRss>
              </item>
          <item>
        <title>2.27.2</title>
        <link>https://dotclear.watch/Billet/Release-2.27.2</link>
        <guid isPermaLink="false">urn:md5:64458c1f7788b024ecdbad0ee058fb20</guid>
        <pubDate>Tue, 22 Aug 2023 10:00:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.27.2</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie ce 22 aout 2023 de la &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/08/22/Dotclear-2.27.2&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle Dotclear 2.27.2&quot;&gt;version de correction 2.27.2&lt;/a&gt; de Dotclear.&lt;/p&gt; &lt;p&gt;Cette seconde version de correction de Dotclear 2.27 n'apporte aucun changement de code nécessitant des explications ici.&lt;br /&gt;
Il faut suivre les évolutions apportées par la &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.27&quot;&gt;version 2.27&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>2.27.1</title>
        <link>https://dotclear.watch/Billet/Release-2.27.1</link>
        <guid isPermaLink="false">urn:md5:ba17f379728f66d4339f47ed1ec6b4aa</guid>
        <pubDate>Wed, 16 Aug 2023 16:54:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.27.1</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 14 aout 2023 de la &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/08/14/Annonce officielle Dotclear-2.27.1&quot; hreflang=&quot;fr&quot; title=&quot;https://fr.dotclear.org/blog/post/2023/08/14/Dotclear-2.27.1&quot;&gt;version de correction 2.27.1&lt;/a&gt; de Dotclear.&lt;/p&gt; &lt;p&gt;Aucun changement technique sur cette version n'a besoin d'explication. &lt;br /&gt;
Il faut suivre les évolutions apportées par la &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.27&quot;&gt;version 2.27&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Sortie de Dotclear 2.27</title>
        <link>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.27</link>
        <guid isPermaLink="false">urn:md5:4222cdc9e8ec783dd063e1245efe9743</guid>
        <pubDate>Sun, 13 Aug 2023 10:00:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Actualités</category>
                          <category>2.27</category>
                  <category>release</category>
                <description>&lt;p&gt;Ce dimanche 13 Août 2023 sort la version 2.27 du moteur de blogs Dotclear.&lt;/p&gt; &lt;p&gt;En plus de la sortie de cette version 2.27, le 13 Août est la date anniversaire de Dotclear et cette année le moteur de blog fête ses 20 ans d'existence ! Vous pouvez aller lui souhaiter un bon anniversaire sur &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/08/13/Dotclear-2.27&quot; hreflang=&quot;fr&quot; title=&quot;Dotclear 2.27&quot;&gt;le billet d'annonce officielle&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
C'est également l'occasion pour &lt;a href=&quot;https://dotclear.watch/Billet/La-plateforme-dotclear.watch&quot;&gt;la plateforme&lt;/a&gt; non-officielle &lt;strong&gt;dotclear.watch&lt;/strong&gt; de faire son lancement, en proposant aux développeurs toute une série de billets dédiés à l'explication des &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.27&quot;&gt;évolutions de cette version 2.27&lt;/a&gt;.&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.27#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Sortie-de-Dotclear-2.27#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/58</wfw:commentRss>
              </item>
          <item>
        <title>Fichier release de Dotclear</title>
        <link>https://dotclear.watch/Billet/Fichier-release-de-Dotclear</link>
        <guid isPermaLink="false">urn:md5:26c7ccf49926dae04de1035555807f6c</guid>
        <pubDate>Fri, 14 Jul 2023 23:01:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>2.27</category>
                          <category>2.27</category>
                  <category>json</category>
                  <category>release</category>
                <description>&lt;p&gt;Avec la &lt;a href=&quot;https://dotclear.watch/Billet/Release-2.27&quot;&gt;version 2.27&lt;/a&gt; de Dotclear, un nouveau fichier &lt;strong&gt;release.json&lt;/strong&gt; fait son apparition.&lt;/p&gt; &lt;p&gt;Ce fichier au format &lt;strong&gt;json&lt;/strong&gt;, présent à la racine de l'installation, définit les variables susceptibles de changer d'une version à l'autre. Dans les versions précédentes de Dotclear, elles étaient définies dans des constantes principalement dans le fichier &lt;code&gt;inc/_prepend.php&lt;/code&gt;. Bien que définies autrement ces valeurs sont toujours accessibles à partir des mêmes constantes. On peut également les lire à partir de la méthode &lt;code&gt;release()&lt;/code&gt; de la classe &lt;code&gt;App&lt;/code&gt;, ces valeurs sont &quot;chargées&quot; une seule fois et ne peuvent être modifiées pendant toute l'exécution du script..&lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-php&quot;&gt;&amp;lt;?php
use Dotclear\App;

// renvoie &amp;#039;2.27&amp;#039;
echo App::release(&amp;#039;release_version&amp;#039;);

// renvoie &amp;#039;8.1&amp;#039;
echo App::release(&amp;#039;next_php&amp;#039;);

// renvoie &amp;#039;berlin,blowup,blueSilence,customCSS,ductile&amp;#039;
echo App::release(&amp;#039;distributed_themes&amp;#039;);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Toutes les valeurs renvoyées par cette méthode sont de type &lt;strong&gt;string&lt;/strong&gt;. Les valeurs sous forme de tableau du fichier release seront concaténées sous forme de chaîne.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;q&gt;Le contenu de ce document a été écrit suivant le code de la version 2.27 de Dotclear.&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;</description>
        
                  <comments>https://dotclear.watch/Billet/Fichier-release-de-Dotclear#comment-form</comments>
          <wfw:comment>https://dotclear.watch/Billet/Fichier-release-de-Dotclear#comment-form</wfw:comment>
          <wfw:commentRss>https://dotclear.watch/feed/atom/comments/21</wfw:commentRss>
              </item>
          <item>
        <title>2.27</title>
        <link>https://dotclear.watch/Billet/Release-2.27</link>
        <guid isPermaLink="false">urn:md5:72ade80918360fdffe7ef013f0d6eb83</guid>
        <pubDate>Tue, 11 Jul 2023 20:28:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.27</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie prévue le 13 Aout 2023, &lt;a href=&quot;https://fr.dotclear.org/blog/post/2023/08/13/Dotclear-2.27&quot; hreflang=&quot;fr&quot; title=&quot;Annonce officielle Dotclear 2.27&quot;&gt;cette version&lt;/a&gt; est l'occasion de fêter les 20 ans de Dotclear !&lt;/p&gt; &lt;h5&gt;Résumé&lt;/h5&gt;

&lt;p&gt;Cette version comprend un nombre très important de changements coté code, elle accélère sa transition vers les espaces de noms PHP avec toute la partie administration qui les utilise désormais. (Tout comme les plugins et les thèmes) Le moteur lui même a entamé sa transition et maintenant il n'y a plus qu'un unique point d'entrée dans le code pour tout !&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Nouveautés :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Nouvelle gestion du moteur suivant &lt;a href=&quot;https://dotclear.watch/Billet/Lancement-de-l-application&quot;&gt;le schéma App =&amp;gt; Utility =&amp;gt; Process&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Quasi obligation d'utilisation de &lt;a href=&quot;https://dotclear.watch/Billet/La-class-Process&quot;&gt;la classe Process&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Nouvelle &lt;a href=&quot;https://dotclear.watch/Billet/Gestion-d-URL-d-administration&quot;&gt;gestion des URLs d'administration&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Nouvelle &lt;a href=&quot;https://dotclear.watch/Billet/La-classe-d-erreur&quot;&gt;gestion d'erreur du core&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Nouveau &lt;a href=&quot;https://dotclear.watch/Billet/Fichier-release-de-Dotclear&quot;&gt;fichier de release&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Modification du &lt;a href=&quot;https://dotclear.watch/Billet/Fichier-de-d%C3%A9finition-d-un-blog&quot;&gt;fichier de définition de blog&lt;/a&gt; index.php,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dotclear.watch/Billet/D%C3%A9placement-de-classes&quot;&gt;Déplacement&lt;/a&gt; de nombreuses classes, principalement liées à d'administration,&lt;/li&gt;
&lt;li&gt;Nombreuses variables, fonctions, méthodes et classes &lt;a href=&quot;https://dotclear.watch/Billet/Les-d%C3%A9pr%C3%A9ci%C3%A9s&quot;&gt;dépréciés&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dotclear.watch/Billet/Structure-d-un-module&quot;&gt;La structure des plugins et thèmes&lt;/a&gt; qui a pas mal bougé depuis quelques versions,&lt;/li&gt;
&lt;li&gt;Nouvelle &lt;a href=&quot;https://dotclear.watch/Billet/Les-classes-de-module-My&quot;&gt;classe outils My&lt;/a&gt; pour les modules,&lt;/li&gt;
&lt;li&gt;Nouvelles classes outils Form qui ajoutent de nombreuses balises HTML,&lt;/li&gt;
&lt;li&gt;Nouvelle fonction JS pour le service Rest.&lt;/li&gt;
&lt;li&gt;Prévisualisation de thèmes dans l'admin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;Définitions :&lt;/h5&gt;

&lt;p&gt;Le langage autour de Dotclear a également évolué en même temps que son code. De quoi parle-t-on ?&lt;br /&gt;
Désormais on peut parler d'App, de Process, d'Utility, de Backend, Frontend, etc. Traduction:&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;App&lt;/strong&gt; : L'application dotclear dans son ensemble, c'est également le nom de la classe qui est désormais le &lt;a href=&quot;https://dotclear.watch/Billet/Lancement-de-l-application&quot;&gt;point de départ&lt;/a&gt; du script PHP,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Utility&lt;/strong&gt; : Ce sont les classes maitresses, chaque Utility gère une partie de Dotclear, admin, public, cli, install,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt; : Alors là ça va se compliquer, du coté Dotclear ce sont les sous parties d'un Utility, par exemple pour faire simple, coté admin, un Process correspondra à une page (Preferences, Blogs, Posts...). Mais un process est également ajouté à un grand nombre de classes dans le Core de Dotclear et aussi dans les thèmes, les plugins, il permet de séquencer le script. En savoir plus sur &lt;a href=&quot;https://dotclear.watch/Billet/La-class-Process&quot;&gt;la classe Process&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend&lt;/strong&gt; : La partie admin,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frontend&lt;/strong&gt; : La partie public.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;Incompatibilités :&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Les plugins et thèmes n'utilisant pas le gestionnaire d'URL &lt;code&gt;dcCore::app()-&amp;gt;admin-&amp;gt;url&lt;/code&gt; (ou le déprécié &lt;code&gt;dcCore::app()-&amp;gt;adminurl&lt;/code&gt;) pour les redirections et formulaires, risquent de ne pas envoyer vers la page souhaitée.&lt;/li&gt;
&lt;li&gt;Les formulaires utilisant la méthode GET doivent ajouter un champ caché contenant &lt;code&gt;process=xxx&lt;/code&gt; où xxx est l'identifiant la page qu'il souhaite atteindre enregistré dans le gestionnaire d'URL. Exemple pour la page générale d'un plugin il faudra ajouter dans le formulaire &lt;code&gt;new Form\Hidden('process', 'Plugin');&lt;/code&gt; ou encore &lt;code&gt;form::hidden('process', 'Plugin');&lt;/code&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;&lt;ins&gt;Information importante pour les développeurs :&lt;/ins&gt;&lt;/strong&gt;&lt;br /&gt;
C'est la dernière version compatible avec PHP 7.4 ! La prochaine version majeure de Dotclear prévue pour novembre .2023 nécessitera PHP 8.1.&lt;br /&gt;
&lt;br /&gt;
Les informations distillées ici sont non exhaustives et pourront être compléter à l'avenir.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>2.26.1</title>
        <link>https://dotclear.watch/Billet/Release-2.26.1</link>
        <guid isPermaLink="false">urn:md5:c88dc5ecb92554b1294be96c2db53b15</guid>
        <pubDate>Tue, 11 Jul 2023 20:11:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.26.1</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 04 Juin 2023, cette version est une version de corrections.&lt;/p&gt; &lt;p&gt;En anglais dans le texte, voici la liste des corrections issue du CHANGELOG de cette version :&lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;
* Fix: Rename of namespaces/workspaces (respectively for settings/preferences)
* Fix: Module search engine
* Fix: Actions on duplicate modules
* Fix: try…catch with chmod()/fileperms() which may be disabled
* Fix: Never loaded parent theme
* Fix: Type hint (theme management)
* Fix: File helper, do not initialize property if given file does not exist
* Fix: Restrict filters to current blog
* Fix: Check existence of opcache_get_status() and opcache_reset() before using them
* Fix: Move safe-mode notice under breadcrumb
* Fix: Remove redundant new keyword (preferences management)
* Fix: Remove unused behavior in maintenance plugin
* Fix: Comments search in backend
* Fix: Fix Berlin theme layout on large screens
* Fix: Clear server PHP cache after module update
&lt;/pre&gt;</description>
        
              </item>
          <item>
        <title>2.26</title>
        <link>https://dotclear.watch/Billet/Release-2.26</link>
        <guid isPermaLink="false">urn:md5:11ef7871801441dee79e32b32b5ddb54</guid>
        <pubDate>Tue, 11 Jul 2023 20:10:00 +0100</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>Versions</category>
                          <category>2.26</category>
                  <category>release</category>
                <description>&lt;p&gt;Sortie le 13 Mai 2023, la version 2.26 intègre la librairie Clearbricks.&lt;/p&gt; &lt;p&gt;Le principal changement coté code est l'intégration de la librairie Clearbricks à Dotclear.&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Nouveautés :&lt;/h5&gt;

&lt;p&gt;En anglais dans le texte voici la listes des changements de la version majeure 2.26 :&lt;/p&gt;
&lt;pre&gt;
* PHP 7.4+ is required, PHP 8.0/8.1/8.2 compliance
* Fix: Remove pragma for correct caching behaviour (pragma header is deprecated)
* Fix: Ensure codemirror rendered area is readonly if textarea source is readonly too
* Fix: Allow dcLegacyEditor applied on excerpt or content textarea only
* Fix: Show format (syntax) label rather than format code in filter
* Core: Clearbricks library has been directly included in Dotclear
* Core: Update timezones from https://www.iana.org/time-zones
* Core: Disabled REST services during last phase of update
* Core: Clear file status cache to avoid running old code after update
* Core: Add php min in requires property in module define
* Admin: A media type has been added to media filter
* Admin: Add post type in breadcrumb if necessary
* Admin: Sort media thumb sizes in descending order (largest first)
* Admin: Add a constant to disable REST services (may be useful during debugging session)
* Admin: Avoid uploading of phar media
* Admin: Fix appearance of action buttons for blog themes
* Admin: Allow 3rd party plugin to use CKEditor to their own textarea on complex admin pages
* Admin: Allow 3rd party plugin to use CodeMirror to their own textarea on complex admin pages
* Admin: Harmonize fieldset (+legend/h3/h4) and CSS class .fieldset (h3/h4)
* Admin: Hide dependency information of module (in details/summary) in plugins management page
* a11y: Add lang attribute for each language select options or list
* Various bugs, a11y concerns and typos fixed
* Some locales and cosmetic adjustments
* Warning: Next major release (2.27) may require PHP 8.1 (announced in backend) or PHP 8.2
&lt;/pre&gt;

&lt;h5&gt;Dépréciés&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;adminThemesList::$distributed_modules&lt;/strong&gt; =&amp;gt; aucun remplacement, devient automatique,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::$distributed_modules&lt;/strong&gt; =&amp;gt; aucun remplacement, devient automatique,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dotclear\Helper\Clearbricks::lib()&lt;/strong&gt; =&amp;gt; utiliser les espaces de noms directement,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dotclear\Helper\Clearbricks::add()&lt;/strong&gt; =&amp;gt; utiliser les espaces de noms directement,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dotclear\Helper\Clearbricks::autoload(&lt;/strong&gt;) =&amp;gt; utiliser les espaces de noms directement,&lt;/li&gt;
&lt;li&gt;Tous les &lt;strong&gt;form::xxx&lt;/strong&gt; =&amp;gt; leurs équivalents &lt;code&gt;Dotclear\Helper\Html\Form\Xxx&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcRecord::toExtStatic()&lt;/strong&gt; =&amp;gt; &lt;code&gt;Dotclear\Database\MetaRecord::toStatic()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::setModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;ModulesList::setDefine()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::getModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;ModulesList::getDefines()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::sanitizeModule()&lt;/strong&gt; =&amp;gt; &lt;code&gt;ModulesList::fillSanitizeModule()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::fillSanitizeModule()&lt;/strong&gt; =&amp;gt; &lt;code&gt;ModulesList::fillSanitizeModule()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::isDistributedModule()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefine($id)-&amp;gt;distributed&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adminModulesList::sortModules()&lt;/strong&gt; =&amp;gt; fonction &lt;code&gt;uasort&lt;/code&gt; de PHP,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcmodules::getModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefines() et Modules::getDefine($id)&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::getAnyModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefines()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::getDisabledModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefines(['state' =&amp;gt; '!' . dcModuleDefine::STATE_ENABLED])&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::getHardDisabledModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefines(['state' =&amp;gt; dcModuleDefine::STATE_HARD_DISABLED])&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::getSoftDisabledModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::getDefines(['state' =&amp;gt; dcModuleDefine::STATE_SOFT_DISABLED])&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::moduleRoot()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcModules::moduleInfo($id, 'root')&lt;/code&gt; ou &lt;code&gt;dcModules::getDefine($id, ['state' =&amp;gt; dcModuleDefine::STATE_ENABLED])-&amp;gt;root&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcModules::loadNsFiles()&lt;/strong&gt; =&amp;gt; rien,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcStoreParser::getModules()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcStoreParser::getDefines()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcStore::get()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcStore::getDefines()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcStore::search()&lt;/strong&gt; =&amp;gt; &lt;code&gt;dcStore::searchDefines()&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dcUtils::removeDiacritics()&lt;/strong&gt; =&amp;gt; &lt;code&gt;Text::removeDiacritics()&lt;/code&gt;,&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;Déplacés :&lt;/h5&gt;

&lt;p&gt;L'intégration de la librairie Clearbricks à Dotclear en passant en espaces de noms amène un nombre important de changement de noms de classes.&lt;/p&gt;
&lt;pre&gt;
&amp;#039;Clearbricks&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Clearbricks&amp;#039;,

// Form helpers
&amp;#039;formButton&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Button&amp;#039;,
&amp;#039;formCheckbox&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Checkbox&amp;#039;,
&amp;#039;formColor&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Color&amp;#039;,
&amp;#039;formComponent&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Component&amp;#039;,
&amp;#039;formDate&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Date&amp;#039;,
&amp;#039;formDatetime&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Datetime&amp;#039;,
&amp;#039;formDiv&amp;#039;       =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Div&amp;#039;,
&amp;#039;formEmail&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Email&amp;#039;,
&amp;#039;formFieldset&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Fieldset&amp;#039;,
&amp;#039;formFile&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\File&amp;#039;,
&amp;#039;formForm&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Form&amp;#039;,
&amp;#039;formHidden&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Hidden&amp;#039;,
&amp;#039;formInput&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Input&amp;#039;,
&amp;#039;formLabel&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Label&amp;#039;,
&amp;#039;formLegend&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Legend&amp;#039;,
&amp;#039;formLink&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Link&amp;#039;,
&amp;#039;formNote&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Note&amp;#039;,
&amp;#039;formNumber&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Number&amp;#039;,
&amp;#039;formOptgroup&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Optgroup&amp;#039;,
&amp;#039;formOption&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Option&amp;#039;,
&amp;#039;formPara&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Para&amp;#039;,
&amp;#039;formPassword&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Password&amp;#039;,
&amp;#039;formRadio&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Radio&amp;#039;,
&amp;#039;formSelect&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Select&amp;#039;,
&amp;#039;formSubmit&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Submit&amp;#039;,
&amp;#039;formText&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Text&amp;#039;,
&amp;#039;formTextarea&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Textarea&amp;#039;,
&amp;#039;formTime&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Time&amp;#039;,
&amp;#039;formUrl&amp;#039;       =&amp;gt; &amp;#039;Dotclear\Helper\Html\Form\Url&amp;#039;,

// Diff helpers
&amp;#039;diff&amp;#039;          =&amp;gt; &amp;#039;Dotclear\Helper\Diff\Diff&amp;#039;,
&amp;#039;tidyDiff&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Helper\Diff\TidyDiff&amp;#039;,
&amp;#039;tidyDiffChunk&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Diff\TidyDiffChunk&amp;#039;,
&amp;#039;tidyDiffLine&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\Diff\TidyDiffLine&amp;#039;,

// Crypt helpers
&amp;#039;crypt&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Crypt&amp;#039;,

// Mail helpers
&amp;#039;mail&amp;#039;       =&amp;gt; &amp;#039;Dotclear\Helper\Network\Mail\Mail&amp;#039;,
&amp;#039;socketMail&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\Mail\MailSocket&amp;#039;,

// Pager helpers
&amp;#039;pager&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\Pager&amp;#039;,

// XmlTag helpers
&amp;#039;xmlTag&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\XmlTag&amp;#039;,

// Rest helpers
&amp;#039;restServer&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\RestServer&amp;#039;,

// Text helpers
&amp;#039;text&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Text&amp;#039;,

// Files and Path, … helpers
&amp;#039;files&amp;#039;       =&amp;gt; &amp;#039;Dotclear\Helper\File\Files&amp;#039;,
&amp;#039;path&amp;#039;        =&amp;gt; &amp;#039;Dotclear\Helper\File\Path&amp;#039;,
&amp;#039;filemanager&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\File\Manager&amp;#039;,
&amp;#039;fileItem&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Helper\File\File&amp;#039;,

// Html helpers
&amp;#039;html&amp;#039;       =&amp;gt; &amp;#039;Dotclear\Helper\Html\Html&amp;#039;,
&amp;#039;htmlFilter&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\HtmlFilter&amp;#039;,

// Mail helpers
&amp;#039;http&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\Http&amp;#039;,

// Wiki helpers
&amp;#039;wiki2xhtml&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\WikiToHtml&amp;#039;,

// Simple Template Systeme
&amp;#039;template&amp;#039;               =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\Template&amp;#039;,
&amp;#039;tplNode&amp;#039;                =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNode&amp;#039;,
&amp;#039;tplNodeBlock&amp;#039;           =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNodeBlock&amp;#039;,
&amp;#039;tplNodeText&amp;#039;            =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNodeText&amp;#039;,
&amp;#039;tplNodeValue&amp;#039;           =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNodeValue&amp;#039;,
&amp;#039;tplNodeBlockDefinition&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNodeBlockDefinition&amp;#039;,
&amp;#039;tplNodeValueParent&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Html\Template\TplNodeValueParent&amp;#039;,

// HTML Validation
&amp;#039;htmlValidator&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Html\HtmlValidator&amp;#039;,

// Socket
&amp;#039;netSocket&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\Socket\Socket&amp;#039;,

// L10n
&amp;#039;l10n&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\L10n&amp;#039;,

// Image helpers
&amp;#039;imageMeta&amp;#039;  =&amp;gt; &amp;#039;Dotclear\Helper\File\Image\ImageMeta&amp;#039;,
&amp;#039;imageTools&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\File\Image\ImageTools&amp;#039;,

// URL Handler
&amp;#039;urlHandler&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\UrlHandler&amp;#039;,

// net HTTP Client
&amp;#039;netHttp&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\HttpClient&amp;#039;,

// XML-RPC helper
&amp;#039;xmlrpcException&amp;#039;           =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\XmlRpcException&amp;#039;,
&amp;#039;xmlrpcValue&amp;#039;               =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Value&amp;#039;,
&amp;#039;xmlrpcMessage&amp;#039;             =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Message&amp;#039;,
&amp;#039;xmlrpcRequest&amp;#039;             =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Request&amp;#039;,
&amp;#039;xmlrpcDate&amp;#039;                =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Date&amp;#039;,
&amp;#039;xmlrpcBase64&amp;#039;              =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Base64&amp;#039;,
&amp;#039;xmlrpcClient&amp;#039;              =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\Client&amp;#039;,
&amp;#039;xmlrpcClientMulticall&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\ClientMulticall&amp;#039;,
&amp;#039;xmlrpcBasicServer&amp;#039;         =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\BasicServer&amp;#039;,
&amp;#039;xmlrpcIntrospectionServer&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\XmlRpc\IntrospectionServer&amp;#039;,

// Feed Helpers
&amp;#039;feedParser&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\Feed\Parser&amp;#039;,
&amp;#039;feedReader&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Network\Feed\Reader&amp;#039;,

// Date helpers
&amp;#039;dt&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\Date&amp;#039;,

// Zip helpers
&amp;#039;fileZip&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Helper\File\Zip\Zip&amp;#039;,
&amp;#039;fileUnzip&amp;#039; =&amp;gt; &amp;#039;Dotclear\Helper\File\Zip\Unzip&amp;#039;,

// Database -------------------

&amp;#039;dcSqlStatement&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Database\Statement\SqlStatement&amp;#039;,
&amp;#039;dcSelectStatement&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\Statement\SelectStatement&amp;#039;,
&amp;#039;dcJoinStatement&amp;#039;     =&amp;gt; &amp;#039;Dotclear\Database\Statement\JoinStatement&amp;#039;,
&amp;#039;dcUpdateStatement&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\Statement\UpdateStatement&amp;#039;,
&amp;#039;dcInsertStatement&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\Statement\InsertStatement&amp;#039;,
&amp;#039;dcDeleteStatement&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\Statement\DeleteStatement&amp;#039;,
&amp;#039;dcTruncateStatement&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\Statement\TruncateStatement&amp;#039;,

&amp;#039;sessionDB&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\Session&amp;#039;,

&amp;#039;cursor&amp;#039;          =&amp;gt; &amp;#039;Dotclear\Database\Cursor&amp;#039;,
&amp;#039;record&amp;#039;          =&amp;gt; &amp;#039;Dotclear\Database\Record&amp;#039;,
&amp;#039;staticRecord&amp;#039;    =&amp;gt; &amp;#039;Dotclear\Database\StaticRecord&amp;#039;,
&amp;#039;extStaticRecord&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\StaticRecord&amp;#039;,

&amp;#039;i_dbLayer&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\InterfaceHandler&amp;#039;,
&amp;#039;dbLayer&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\AbstractHandler&amp;#039;,

&amp;#039;i_dbSchema&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\InterfaceSchema&amp;#039;,
&amp;#039;dbSchema&amp;#039;   =&amp;gt; &amp;#039;Dotclear\Database\AbstractSchema&amp;#039;,

&amp;#039;dbStruct&amp;#039;      =&amp;gt; &amp;#039;Dotclear\Database\Structure&amp;#039;,
&amp;#039;dbStructTable&amp;#039; =&amp;gt; &amp;#039;Dotclear\Database\Table&amp;#039;,
&lt;/pre&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
        
              </item>
      </channel>
</rss>
