SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

246 Plugins, 178 contribs sur SPIP-Zone, 143 visiteurs en ce moment

Accueil du site > Outils pour plugins > Config (CFG) > cfg : références

cfg : références

19 mai 2007 – par support, toggg – 32 commentaires

Toutes les versions de cet article : [français] [italiano]

16 votes

CFG est un plugin pour SPIP qui facilite le paramétrage d’autres plugins ou squelettes en permettant de créer facilement des formulaires de configuration.

Cet article explique les bases de création de ces formulaires et l’utilisation des données issues de ceux-ci. Des liens sont proposés dans l’article découvrir les fonctions avancées de CFG.

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_chosequelque_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 :

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.

P.-S.

Evidemment, toute contribution est la bienvenue, vous pouvez facilement demander à devenir co-rédacteur.

Notes

[1] Le "fond" CFG utilisé sera le premier trouvé dans l’ordre des priorités de SPIP... En priorité dans le répertoire squelettes/, puis dans un des plugins actifs, puis dans dist/, puis dans ecrire/

[2] Les variables postées commençant par "id_" vont s’inscrire dans la la chaine produite par la balise #SELF (comportement standart de SPIP). Si #SELF est utilisée dans le formulaire CFG par <form method="post" action="#SELF">, c’est sa valeur qui sera prise en compte par SPIP lors de l’envoi du formulaire, et non la nouvelle valeur choisie par l’utilisateur (en fait, 2 variables sont envoyées : une en GET (avec l’action="#SELF" et une en POST (le champ du formulaire) de même nom, et SPIP prend prioritairement GET lorsque l’on demande une variable avec sa fonction _request()

Retour en haut de la page

32 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4

  • Répondre à ce message

    23 janvier 15:42

    Comment faire pour utiliser le fichier php appelé avec des fonctions propres à SPIP ?

  • Répondre à ce message

    23 janvier 11:51

    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

    30 novembre 2009 14:36, par Balou

    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 :

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /mnt/165/sda/7/d/latoniccia/ecrire/public/composer.php(48) : eval()’d code on line 100

    J’utilise la dernière version de CFG.

    Dans l’attente d’une explication !

    Merci d’avance

  • Répondre à ce message

    14 novembre 2009 22:09, par superyms

    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

    14 novembre 2009 14:01, par superyms

    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 ??

  • Répondre à ce message

    7 août 2009 22:17, par babbibel

    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

    7 août 2009 21:22, par Matthieu Marcillaud

    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.

  • Répondre à ce message

    7 août 2009 20:42, par babbibel

    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.

  • Répondre à ce message

    7 août 2009 20:36, par Matthieu Marcillaud

    c’est le critère par qui doit être écrit en dur :

    1. {par (#CONFIG{babbi/tri, date})}

    Cela marchera mieux.

  • Répondre à ce message

    7 août 2009 18:59, par babbibel

    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é...

    <BOUCLE_sous-menus(RUBRIQUES) {id_parent} {#CONFIG{babbi/tri, par date}} >
    <li><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero|couper{80})]</a></li>
    </BOUCLE_sous-menus>

    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.

Pages 1 | 2 | 3 | 4

Répondre à cet article

Retour en haut de la page

Ça discute par ici

  • Forms&Tables 2.0

    31 décembre 2009 – 94 commentaires

    Gestion et administration de formulaires éditables. Ce plugin permet également la publication de sondages et enquètes, la collecte des réponses dans la base de données et le téléchargement au format csv. Adaptation à SPIP 2.0 ATTENTION : Pour (...)

  • Plugin Spip jQuery Cycle

    23 août 2009 – 15 commentaires

    Le plugin Spip jQuery Cycle " sjcycle " est un diaporama paramétrable pour Spip basé sur la librairie javascript jQuery et les plugins : jQuery Cycle Plugin ; FancyBox ; Tooltip. Développé pour Spip [2.0.x] il utilise : les formulaires CVT ; le (...)

  • Le Squelette Zpip

    11 novembre 2009 – 118 commentaires

    Zpip [1] est un squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Il est issu d’une fusion des projets Zesty et SPIP-Zen. Installer Zpip Pour installer Zpip et jouer avec sans plus attendre, il suffit de suivre le guide (...)

  • CKeditor 3.0

    4 octobre 2009 – 125 commentaires

    FCKeditor est mort ! Vive CKeditor ! CKeditor est l’évolution de l’éditeur WYSIWYG : FCKeditor, avec ce plugin vous pourrez utiliser cet éditeur à la place de l’éditeur de spip tout en laissant le choix à vos auteurs de l’éditeur qu’ils préfèrent (...)

  • Social tags

    8 septembre 2008 – 120 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via CFG. Insertion dans les pages Le plugin (...)