Unique fichier de configuration
CFG a été motivé par le besoin récurrent de fabriquer des configurations de plugins ou squelettes.
Son leitmotiv est donc la simplicité. C’est pourquoi une configuration « quelque_chose » (un plugin, un squelette ou ce que l’on veut) est basée sur l’unique fichier fonds/cfg_quelque_chose.html [1].
Ce « fond » contient un formulaire et des propriétés/options qui sont transmises à CFG.
La modification des données (par un administrateur du site) se fait par simple appel de l’action CFG comme
ecrire/?exec=cfg&cfg=quelque_chose
où quelque_chose correspond au nom du fichier fonds/cfg_quelque_chose.html
.
Le formulaire
Il s’agit d’un formulaire HTML standard, interprété comme un squelette. Les données gérées sont reconnues d’après l’attribut « name » des balises de formulaire comme
-
<input type="text" name="truc"...>
, -
<select name="truc"...>
, -
<textarea name="truc" ...>
, - etc.
Notes sur le nomage des attributs « name »
- Les noms commençant par _cfg_ sont réservés au fonctionnement interne.
- Les noms commençant par id_ peuvent poser problème. [2]
Transmettre une action sécurisée
L’action du formulaire étant sécurisée, il faut lui adjoindre les données de contrôle, tout simplement en faisant suivre <form ...>
par des « hidden » le plus simple étant :<form method="post" action="#SELF">[(#ENV{_cfg_}|form_hidden)]
Boutons d’envoi et de suppression
Enfin, les submit de validation ou de suppression doivent être nommés respectivement _cfg_ok ou _cfg_delete (noms réservés)
Formulaire minimal
Un formulaire minimal serait donc :
<form method="post" action="#SELF"><div>[(#ENV{_cfg_}|form_hidden)]
<input type="text" name="mon_text" value="#ENV{mon_text}" />
<textarea name="mon_area">[(#ENV{mon_area})]</textarea>
<input type="submit" name="_cfg_ok" value="<:OK:>" />
<input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
</div></form>
Comme on peut le voir, les valeurs des données sont récupérables par #ENV{truc}
Important : La méthode d’analyse des formulaires de CFG implique de respecter l’ordre suivant (type
puis name
, puis les éventuelles class
css, puis le reste) dans les balises utilisées (textearea
, select
, input
...).<input type=... name=... class=... .../>
<textearea/select name=... class=... .../>
Les propriétés de l’objet cfg
Il est possible en plaçant des remarques au format html commençant par propriete= de spécifier des propriétés intrinsèques de l’objet CFG qui manipulera le formulaire.
Par exemple, on peut ainsi définir le titre du formulaire (notez l’espace après <!--
et le =
collé au nom du paramètre) :<!-- titre=Le titre du formulaire -->
Il est possible alors de jouer avec les balises SPIP et les fichiers de langue :<!-- descriptif=<multi>[fr]Descriptif français [en]In english</multi>-->
<!-- descriptif=<:prefixe_plugin:description_plugin:>-->
Ici, le descriptif sera complètement interprété, comme un squelette ... y compris boucles et toute la machine de guerre SPIP.
Propriété | Description |
titre | Un des 2 titres, fera le gros titre si boite est aussi présent |
boite | Le titre de la boite formulaire, défaut titre si présent, ’Configuration machin" sinon |
descriptif | Le descriptif affiché en haut de colonne gauche |
nom | Le nom du meta où sera stockée la configuration, par défaut c’est le nom du formulaire, xxx dans fonds/cfg_xxx |
Il existe d’autres propriétés avancées que vous pouvez trouver dans l’article API CFG : Paramètres des formulaires
Utilisation des données
Les données stockées sont sérialisées sous le nom « quelque_chose » dans la table spip_meta.
On les récupère dans les squelettes avec la balise #CONFIG qui est étendue par cfg pour extraire les subdivisions avec le séparateur /
Par exemple #CONFIG{quelque_chose/mon_area}
donnera la valeur du champs mon_area produite par le formulaire fonds/cfg_quelque_chose.html
Depuis le php, on peut utiliser similairement lire_config('quelque_chose/mon_area')
#CONFIG{}
ou lire_config()
admettent comme deuxième paramètre la valeur à retourner par défaut. Par exemple #CONFIG{quelque_chose/mon_area,defaut area}
donnera defaut area
si quelque_chose ou mon_area sont vides.
Discussions par date d’activité
24 discussions
Bonjour,
Depuis que j’ai installé walma, je rencontre des problèmes...
je n’arrive pas à configurer walma : mes modifications ne sont pas enregistrées.
Quand je vais modifier la conf. de cfg( /ecrire/ ?exec=cfg) c’est celle de walma qui apparait (je ne peux plus acceder à la configuration des autres plugins), si j’enregistre une nouvelle configuration de walma sur cette page, j’ai un message me disant que l’acces à cfg est interdit.
j’ai fais le tour des forums, je ne trouve pas de problemes similaires, qu’est ce qui déconne ?
Jusqu’a présent je n’ai jamais eu de soucis avec CFG
spip 1.9.2d/walma_192/cfg 1.7.6
Répondre à ce message
bonjour j’ai un problème après l’installation du plugin.
après activation du plugin J’ai bien l’icône dans ma configuration mais celui ci ne fonctionne pas :"
Erreur...
Fichier exec/cfg introuvable « de même en cliquant sur installer des librairies : »Erreur...
Fichier exec/cfg_install_libs introuvable"
???? tous les fichiers citées sont dans le repertoire plugins/cfg/
ma config spip 1.9.2d evaweb 3
Merci
Répondre à ce message
Bonjour, voici plus d’une heure que je cherche à récupérer ce plug-in, mais sans succès, j’ai vraiment tout essayé...
La meilleure pise que j’ai est :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/_test_/cfg
Mais n’ayant pas l’adresse svn je ne sais pas comment faire.
Merci de m’aider.
Comme indiqué dans Coder-un-plugin-simple-avec-cfg le zip se trouve dans les archives de la zone dont l’adresse est donnée dans la page d’introduction du trac
Pour plus de sureté, j’ai rajouté une référence directe dans le post-scriptum de cet article.
Juste pour dire que j’ai bien galéré aussi pour repérer finalement le fichier .zip tant convoité, qui n’est pas très visible.
Je me dépêche d’installer tout ça :)
Argh...
ça m’affiche ça, une fois que j’ai uploadé et activé le plug-in :
J’ai pourtant un fichier spip\plugins\cfg\depots\metapack.php qui est bel et bien présent.
Répondre à ce message
bonjour
Moi aussi je ne vois aucun plugins que j’ai telecharger.
Le logo des plugins n’apparait pas et je ne c’est comment bien envoyer un fichier ou c’est un répertoire correctement sur mon site par ftp.
plusieurs essais et aucun plugins vus.
http://eric.legendre2.free.fr/spip/
Sous 1.9.2 il faut passer en « interface complête » pour voir les plugins et être administrateur. Sinon, allez ici : ecrire/ ?exec=admin_plugin
MM.
Merci pour la réponse, et c’est fait , je ne c’est comment je vois pluging cfg.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |