Autre nouveauté sous le capot de dotclear 2.2, le changement dans la gestion des settings. Le sujet a déjà été traité sur la liste du lab dotclear, mais cela ne fait pas de mal d'en rappeler les principes

dotclear 2.1 proposait regrouper les settings en "namespaces", mais ces namespaces n'étaient pas utilisés directement dans la récupération des settings : pour récupérer un setting, il fallait faire appel à $core->blog->settings-><nomdusetting>.

Conséquence intrinsèque, il était impossible de définir 2 settings de même nom dans 2 namespaces différents

dotclear 2.2 ajoute le nom de namespace dans la récupération des settings. Là où en 2.1.7 on utilise $core->blog->settings->themes_path par exemple, en 2.2 on utilisera désormais $core->blog->settings->system->themes_path

L'ancien mécanisme d'appel des settings sera toujours opérationnel en 2.2, mais il est fortement conseillé de faire évoluer les plugins vers les nouvelles méthodes. Pour ce faire :

  • Remplacer tous les appels à $core->blog->settings->setNameSpace() par $core->blog->settings->addNameSpace()
  • Remplacer les appels à $core->blog->settings->setting par des appels à $core->blog->settings->namespace->setting
  • Remplacer les appels à $core->blog->settings->put() par des appels à $core->blog->settings->namespace->put()

Par ailleurs, les nouveaux nommages des settings incluant le nom du namespace, on peut se passer complètement de l'appel à $core->blog->settings->setNameSpace. L'appel à $core->blog->settings->addNameSpace() n'est obligatoire que dans le cas d'ajout d'un setting, si on n'est pas sûr que le namespace existe déjà

A noter, si votre blog est configuré en mode DEBUG, et uniquement dans ce cas (voir à cet effet les lignes à décommenter dans inc/prepend.php) un NOTICE PHP apparaîtra en cas d'utilisation d'un plugin se basant sur les anciens mécanismes.