Gmane
From: bertrand Gugger <bertrand <at> toggg.com>
Subject: cfg: storages
Newsgroups: gmane.comp.web.spip.user
Date: 2007-05-23 06:59:39 GMT (1 year, 27 weeks, 5 days, 18 hours and 8 minutes ago)
Philippe Hensmans wrote:
 > Merci mille fois pour ton aide. Tu as un peu de doc sur le storage
 > "table"? J'avoue que je suis un peu perdu, là.

Pourrais-tu répondre sur la liste, ça peut intéresser d'autres gens...
Pas grave je démarre un bouveau fil.

cfg a été conçu au départ pour simplifier la vie des devs ayant besoin 
de configurer un plugin ou un squelette et aussi pour réduire l'usage de 
spip_meta.

C'est sa partie très stable, déjà utilisée dans plusieurs plugins et 
squelettes, voir entre autres http://www.spip-contrib.net/?avec-CFG

Le principe qui ne bougera pas est que le développeur n'aie qu'à fournir 
un squelette du formulaire fonds/cfg_machin.html , cfg faisant tout le 
reste.

La doc en cours de rédaction est dans 
http://www.spip-contrib.net/?Config-cfg

(hihi, Nicolas a installé "urls libres" sur Contrib !, ça aussi c'est 
tout neuf :) )

Vu donc que cfg marchait très bien pour cela, et ce truc séparant 
totalement la vue et l'enregistrement, j'ai, comme prévu, éclaté le code 
pour séparer le storage, la façon dont les données sont enregistrées.
On va finalement vers quelque chose de beaucoup plus étendu que la 
configuration puisqu'on a maintenant 5 storages utilisables:

-* metapack:
C'est le storage initial de cfg: les données sont stockées
sous forme de tableau sérialisé dans un seul enregistrement de spip_meta 
au nom du formulaire, [(@#REM) nom=xxx] si on veut un autre nom, par 
exemple lorsqu'on veut avoir différentes vues partielles d'une config.

-* classic:
C'est similaire à ce que fait le core pour enregistrer la configuration 
de spip: chaque donnée est stockée telle quelle dans un enregistrement 
de spip_meta à son nom.

-* extrapack:
Ici, sous forme de tableau sérialisé dans la colonne extra d'une table, 
auteurs, articles ou n'importe laquelle déclarée dans les tables 
principales ou auxilliaires (donc aussi pour les tables ajoutées)

-* table:
Dans n'importe quel table pareil, ici chaque donnée est enregistrée au 
format naturel dans une colonne à son nom.
Ça va être utilisé pour gérer les paramètres de spip-listes dans la 
version en cours de préparation. On peut s'en servir pour gérer toute 
table, autre exemple, le plugin Association pourrait l'utiliser 
avantageusement. Ça pourrait faire pour toi une table "Pays" que tu 
relierais à tes articles.

-* php:
La config est enregistré sous forme de code php directement incluable 
par le plugin ou n'importe quoi qui en a besoin. C'est le storage que 
spixplorer utilisera (en cours, aussi).

On en est aux balbutiements, manque de l'intégration, et hormis les 
exemples livrés dans cfg/fonds/cfg_xxxx.html, il n'y a encore pas de doc.
Je voudrais entre autre ajouter une balise formulaire pour l'intégrer 
partout où voulu et bénéficier des retours des utilisations pilotes 
avant de fixer le parametrage.

Si quelqu'un désire faire des essais ou donner un coup de main, ne pas 
hésiter à me contacter.
-- 
toggg