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
J’ai téléchargé le plugin car il m’était demandé pour pouvoir utiliser d’autres plugins, mais j’avoue que je comprends pas comment je peux le modifier, et si ça se fait pas l’espace privé ou un autre logiciel, quelqu’un peut-il m’aider ?
Répondre à ce message
Voilà un moment que je galérais : dans mon formulaire de configuration, CFG refusait de prendre en compte les champs INPUT alors qu’il acceptait les autres. J’ai enfin trouvé pourquoi : les valeurs des attributs type et name étaient entre ’apostrophes’ et pas entre « guillemets » (par facilité, ces champs étant créés par PHP). Debug difficile car HTTP accepte les 2 syntaxes et les variables étaient bien envoyées par POST.
Je trouve que cela mériterait d’être précisé sur cette page, par exemple dans le « formulaire minimal ». Et aussi dans le tutorial « coder un plugin simple ».
Merci d’avance aux auteurs.
CM
Répondre à ce message
Bonjour,
J’utilise Saisies pour réaliser un formulaire de configuration de squelettes avec CFG qui s’avère très pratique. J’ai juste rencontré une difficulté pour récupérer la valeur des saisies de type
selecteur_rubrique
qui permet de choisir une rubrique.Rastapopoulos m’a donné une solution sur le forum de Saisie qui m’amène à la proposition suivante :
De la même façon qu’il est possible de récupérer très facilement dans un squelette la valeur d’un champ d’un formulaire CFG par la balise
[(#CONFIG{prefixe_plugin/label_champ})]
, serait-il possible de rendre possible la récupération de l’identifiant des rubriques / articles des saisies de typeselecteur_rubrique
,selecteur_article
,selecteur_rubrique_article
sans avoir à utiliser des filtres :Cela permettrait également de saisir la valeur par défaut de #CONFIG de manière plus intuitive pour ce type de saisies. En effet, pour l’instant, celle-ci doit être de la forme article|2 ou rubrique|3 où 2 et 3 sont les identifiants de l’article et de la rubrique. Par exemple :
Pour info, c’est Bonux qui fournit le code d’affichage de ces types de saisies (dans plugins/spip-bonux/formulaires/selecteur/), ainsi que le filtre
picker_selected
.En tout cas, merci pour ces plugins forts utiles.
Répondre à ce message
Bonjour,
Je travailles actuellement sur un formulaire CFG pour l’administration d’un plugin s’appuyant aussi sur le plugin Composition mais je me heurte au problème suivant :
Je construis une liste de checkbox dynamique à partir d’une boucle sur les compositions des rubriques. Mais je n’arrive pas à enregistrer les éléments cochés tant que je n’ai pas mis hors de ma boucle un champ checkbox avec le même nom.
Code qui fonctionne pas :
Code qui fonctionne :
J’ai vérifié la variable $cfg dans la fonction charger et effectivement si je n’ajoutes pas une checkbox hors de ma boucle le champ cfg_gm_compositions n’est pas présent dans $cfg->champ => impossible de faire un enregistrement.
Quelqu’un a-t-il déjà été confronté à ce problème ? Si oui avez-vous une solution de contournement ?
Merci beaucoup,
Répondre à ce message
Bonjour,
La mise à jour de cfg n’est pas toujours bien faite.
Sur un site actuellement sous spip 2.1.10 17657, le pluging cfg 1.15.0 38187 ne s’actualisait pas dans le répertoire /plugin/auto/cfg. Dans le répertoire /lib/cfg la version était bien 1.16 38776.
Celà perturbait le plugin menus. En remplaçant par ftp directement la directorie /plugins/auto/cfg par un contenus (1.16 43371) provenant d’un site neuf, plus de problème.
J’avais eu également un gros problème avec cet ancien cfg qui bloquait l’exploration de googleboot et donc je n’avais plus de référencement google.
Voilà pour la communauté spip. Amicalement Alain
Répondre à ce message
Bonjour,
Après quelques tests , il apparait qu’il y a une erreur dans la méthode ajouter_erreur($champ, $message) , en effet si on regarde les sources on utilise la variable $champs et $champ pour placer le message d’erreur.
Résultat le message d’erreur est ajouter avec la chaîne vide.
Il faudrait donc corriger dans la prochaine release.
Là ou ça coince :
Répondre à ce message
Bonjour,
J’essaie d’utiliser CFG pour pouvoir configurer un plugin qui s’appelle SpiDoli (prefix=spidoli).
Voici ce que me transmet CFG depuis que j’ai enregistre une donnée dans un champs appelé adresse_doli :
Aucun champ trouvé dans spidoli
De plus il n’est plus possible de modifier les configurations.
Quelqu’un peut-il me donner des informations pour que je puisse réaliser mon système de configuration.
Olivier
Je me répond immédiatement :
J’avais inclus un size=« 80 » entre type et name. Ceci a bloqué le système.
En le mettant à la fin, je n’ai pas de problème.
Olivier
Répondre à ce message
Comment faire pour utiliser le fichier php appelé avec des fonctions propres à SPIP ?
Répondre à ce message
Comment faire si le fichier de traitement php que l’on envoie au form se trouve dans le même dossier que le fichier html ?
Comment faire pour rediriger vers une même page html mais qui est appelé après traitement php et n’est pas la page html, tout en gardant le squelette de cfg ??
Répondre à ce message
Bonjour,
j’utilise SPIP 1.9.2i sur notre site : http://latoniccia.free.fr
J’ai un PB avec le plugin CFG qui affiche cette erreur :
J’utilise la dernière version de CFG.
Dans l’attente d’une explication !
Merci d’avance
Répondre à ce message
bonjour,
depuis une mise à jour de la version SPIP 2.0.10 stable vers SPIP 2.0.10 [14734]
en utilisant CFG 1.14.1 [31734]
CFG ne fonctionne plus et j’obtiens les errreur suivantes :
- la page ecrire/ ?exec=cfg donne :
Erreur...
Fichier cfg introuvable
- les pages de configuration d’autres plugins donnent toutes des erreurs 404.
J’ai vidé les caches SPIP et navigateurs, et même le dossier tmp, mais rien n’y fait , ça ne fonctionne pas !
PS : si je repasse en SPIP 2.0.10 stable ça remarche, apparemment y aurait une erreur sur SPIP ??
c’est corrigé dans la version SPIP 2.0.10 [14737].
cfg remarche très bien.
comme je l’avais cru s’était lié à SPIP, suite à la correction Changeset 14735 .
@+
Répondre à ce message
Bonjour à tous,
Je découvre l’utilisation de CFG et je ne comprends pas pourquoi cette boucle ne fonctionne pas.
#CONFIG{babbi/tri, par date}
semble ne pas être interprété...Pourtant
#CONFIG{babbi/tri, par date}
contient la bonne valeur puisque j’arrive à l’afficher.Je ne vois pas ce que j’ai pu oublier...
Merci d’avance.
c’est le critère par qui doit être écrit en dur :
Cela marchera mieux.
Merci Matthieu, mais ’est de ma faute, j’ai oublié de préciser que le « par » est contenu dans la variable.
«
#CONFIG{babbi/tri, date}
renvoie donc »par titre
" par exemple.J’avais bien compris, mais SPIP ne peut pas calculer les noms de critères. Il peut par contre souvent calculer leurs arguments. Tu dois écrire
{par QQC}
, QQC pouvant être une balise SPIP.Merci Matthieu pour cette réactivité...
J’ai essayé et tu as sans doute raison. ça ne fonctionne toujours pas mais j’ai changé d’erreur... Je cherche encore.
Pourtant il n’y a pas de problème avec le
{0, (#CONFIG{babbi/nb_articles})}
. Mais pour le critère de tri... Je galère.Répondre à ce message
Bonjour, je me heurte à un sérieux problem avec cfg.
Les images et formulaire inséré dans les articles ne sont plus traités par spip : je me retrouve avec du texte type
<img34|left>
ou<form3|center>
en lieu et place de mes documents.Je ne trouve rien sur ce sujet. Je suis sous xamp et mamp en local et 90 plan OVH.
Merci de votre aide.
PS je ne sais pas ce que ces pdf font dans ce post ?
Je me réponds à moi-même et merci aux utilisateurs de la liste, c’est la plugin de gestion des metas qui rajoute des bouts de code
<strong></strong>
à laplace de chaque espace dans la balise#TEXTE
. Il désactive aussi le fonctionnement des balise form, emb, doc...Répondre à ce message
Merci pour toute ces infos sur le plugin cfg mmais apparement il a disparu de la circulation donc puisque une bonne partie des plugin s’appuie sur un plugin cfg récent donc impossible d’installer de nouveau plugin donc mon spip est inutilisable du moins je dois laisser tomber l’idée de rajouter tel ou tel chose. Si jamais vous retrouvez une trace de ce plugin, je suis preneur
« cfg plugins spip » dans google. C’est le premier résultat. Avec un lien direct pour le download... Je ne vois pas en quoi il a « disparu ». http://plugins.spip.net/cfg
Répondre à ce message
J’avais un problème de décompression du cfg.zip !!!
Mille mercis à denisb
Répondre à ce message
j’ai installé et activé le plugin CFG sur deux plateformes Spip (1.9.2e, 2.03) et dans les deux cas je me heurte à un problème pour exécuter le plugin. Les messages sont respectivement ’fichier exec/cfg introuvable’, ’fichier cfg introuvable’.
Que dois-je faire ?
Répondre à ce message
En me basant sur le tuto du plugin CFG, je crée plusieurs checkbox à l’aide d’une boucle :
< BOUCLE_fonction(MOTS)>
< input type="checkbox" name="#ID_MOT" [checked="(#ENV#ID_MOT)"] value="#TITRE" /> [(#DESCRIPTIF)]
< /BOUCLE_fonction>
Le problème c’est qu’après avoir coché quelques cases et une fois mon formulaire envoyé, le plugin m’indique « Enregistrement de ... effectué » mais les cases ne sont plus cochées !! Quelqu’un a-t-il une solution ?? Je désespère...
Merci beaucoup.
Répondre à ce message
Bonjour,
Malgré des verres correcteurs, une loupe voire un microscope, je ne suis pas arrivé à trouver le lien pour télécharger le plugin ?
y a t il plusieurs versions ?
où peut on les trouver ?
merci de penser à moi.
bonne journée
Bonjour,
C’est vrai que cela ne saute pas au yeux.
Il faudrait peut être rajouter le mot « téléchargement » devant
Pour télécharger CFG il faut cliquer sur :
cfg dans les zip de la zone qui se trouve juste un peu au dessus.
Répondre à ce message
Bonjour en version spip 2 beta lorsque CFG est installé, et que je vais dans la page des plug-in en partie privée aucun plug-in ne s’affiche et si j’essaie d’aller dans la page de configuration de CFG il n’y a que le titre qui apparait c’est à dire « Configuration des modules ».
Quel est le problème ?
Merci
Répondre à ce message
Bonjour,
Suite à la mise à jour du plugin CFG, et sur un SPIP 1.9.2d j’ai une série de message d’erreur en début de page lorsque j’appelle la configuration du plugin en cliquant sur son icône
Warning : in_array() [function.in-array] : Wrong datatype for second argument in ...../ecrire/public/composer.php(48) : eval()’d code on line 48
Le fichier en question dans SPIP n’est pas modifié.
Pouvez vous me dire ce qui cloche ?
Le site est hébergé chez OVH.
Merci de votre aide
Cordialement
X.T.
Bonjour,
Idem ou presque : L’activation du plugin Spip2Spip provoquait une fatal error dans Gestion des plugins, la mise à jour de CFG y a palliée... mais effectivement CFG et toutes les configurations des plugins affichent une dizaines de lignes de « in_array() [function.in-array] : Wrong datatype for second argument in ...../ecrire/public/composer.php(48) : eval()’d code on line 46 » (46 chez moi et non pas 48... ?)
(La synchronisation des articles avec Spip2Spip ne fonctionne pas)
Même demande, même attente.
Le site est hébergé aussi chez OVH. Merci de votre aide
Cordialement aussi :-)
Ah ! En désactivant Autorité (Peut-être à mettre à jour), chez moi, toutes les lignes warning ont disparu.
(Mais la synchro ne fonctionne toujours pas)
Répondre à ce message
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 : |