Encore quelques lignes commitées aujourd’hui, pour faire avancer le schmilblick de la 2.9. Parce que c’est pas tout ça et j’ai beau avoir réduit copieusement la voilure, il reste encore des choses à terminer avant de livrer cette version, surtout que j’ai un plugin d’application (et de test) à développer avant de finir une des fonctions en cours d’implémentation.
En détail, ce que j’ai fini (quasi) de mettre en place aujourd’hui est un nouveau type (array) de réglages et de préférences, type proposé par Bruno (Dsls ou morefnu pour les intimes[1]), et qui évite d’utiliser des serialize
à foison pour stocker des tableaux (associatifs ou pas d’ailleurs).
Exemple, là ou avant il fallait, pour récupérer un tableau stocké (avec un type string) ;
$last_dirs = @unserialize($core->auth->user_prefs->interface->media_last_dirs); // Récupération du tableau stocké en préférence $core->auth->user_prefs->interface->put('media_last_dirs',serialize($last_dirs)); // Enregistrement du tableau
Il faut maintenant faire :
$last_dirs = $core->auth->user_prefs->interface->media_last_dirs; // Récupération du tableau stocké en préférence $core->auth->user_prefs->interface->put('media_last_dirs',$last_dirs); // Enregistrement du tableau
Ça simplifie le code donc c’est bon, mangez-en !
D’ailleurs je vais rapidement l’implémenter partout dans mes plugins (et ailleurs si besoin). À ce sujet, il y aura dans la 2.9, deux fonctions qui vous permettront de convertir vos préférences et réglages si nécessaire :
dcUpgrade::settings2array($namespace,$setting_id)
pour les réglages du blogdcUpgrade::prefs2array($workspace,$pref_id)
pour les préférences utilisateur
Voyez le fichier inc/dbschema/upgrade.php
pour quelques exemples d’utilisation.
PS : Merci à Bruno pour l’essentiel du code implémenté.
Note
[1] Je mets pas son URL de blog vu qu’il l’a tout massacré et qu’il est plus en ligne.
1 De Gilsoub -
Je n’y comprends rien, mais un grand merci pour ce boulot qui me permet de publier mes bêtises au jour le jour !
2 De Franck -
C’est vrai que vu du côté utilisateur, ce que je viens de modifier ou plutôt d’ajouter ne va strictement rien changer !
Par contre, ça simplifie un peu la vie des développeurs, et vu qu’on en manque, c’est toujours bon à prendre ; d’ailleurs j’en profiterai le premier !
3 De Philippe -
Vivement la 2.9, ou le report de ces nouveautés dans les nightlies ;)
4 De Franck -
Elles devraient déjà y être ces nouveautés dans la nightly, depuis cette nuit.
5 De Philippe -
Pas sur la branche testing, qui en est à la r3148. Je crois que les derniers changesets sont poussés seulement sur unstable
6 De Franck -
Ah oui, la testing c’est la branche 2.8, pas la 2.9 en cours de développement. Je comprends mieux :-)
Du coup y’a aucune chance pour que ces modifs y soient reportées, seules y seront, s’il y en a, les corrections de failles de sécurité, tant que la 2.9 ne sera pas dans les bacs.
7 De Philippe -
Merci pour les précisions. Du coup j’ai mis à jour, trouvé le tableau de bord cassé, et créé un ticket :P
8 De Philippe -
PS : le gestionnaire des médias roxe \o/