Meta dans une table spécifique
Eric Lupinacci <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello, J’essaye de mettre en place une configuration de plugins dans une table différente que spip_meta et je me heurte à quelques incohérences dans les API SPIP. 1) L’API Config. Les fonctions lire_config(), ecrire_config() et effacer_config() permettent aujourd’hui de spécifier la table dans laquelle lire ou écrire une variable de configuration. Il suffit pour ça de rajouter /nom_table_sans_spip/ devant le nom de la variable. Cela fonctionne parfaitement surtout que l’API gère également la création automatique de la table voire sa suppression quand cela est nécessaire. 2) L’API Meta et les upgrade de base C’est là que ça se gâte. Après avoir créé une meta de configuration dans une table autre que spip_meta pour mon plugin, appelons-la spip_mameta, je me suis dis que pour être cohérent il serait mieux de mettre la meta standard du plugin préfixe_base_version. Donc j’ai utilisé la déclaration meta du paquet.xml (attribut de la balise paquet) qui est censée indiquer justement que les metas du plugin doivent être stockées dans une table donc le nom est celui de l’attribut préfixé par meta. Donc j’ai ajouté cet attribut dans le paquet.xml, meta=« mameta » et lancé l’installation. Résultats des erreurs : https://framapic.org/JsNg3KT0MQmw/qceJT2ZbZuzM.png <https://framapic.org/JsNg3KT0MQmw/qceJT2ZbZuzM.png> et pourtant un plugin installé mais aucune table créée, ni la meta mameta_version_base. Par contre, la configuration écrite via l’API Config est bien dans spip_mameta et la meta tables_config contient bien cette table. Néanmoins, il existe dans la fonction maj_plugin() un quatrième argument qui permet de passer justement la table meta à utiliser : elle devrait être déduite par l’attribut mais pour essayer je saisis donc mameta dans l’appel de maj_plugin(). Le résultat semble plus probant mais les écritures dans la table spip_mameta ne se font pas car la table n’est pas créée automatiquement si elle n’existe pas comme pour l’API Config. Donc il me semble qu’il y a plusieurs incohérences voire bugs : - l’API Config et Meta ne fonctionnent pas de la même façon vis-à-vis d’un table différente de spip_meta - l’upgrade fait appel à l’API meta et pas à l’API Config ce qui provoque en partie le problème. - l’attribut meta ne semble pas être utilisé correctement lors de l’installation. Est-ce que j’utilise mal les API ou confiez-vous les bugs ? Si bug, il serait bon de les corriger en 3.3. ++ Eric