ref : Mathieu, Rastapopoulos dans http://permalink.gmane.org/gmane.comp.web.spip.zone/22402
(Nouveau) CFG Intégré à SPIP-CORE
Un système de formulaire de configuration, nécessitant uniquement de donner un squelette de formulaire est déjà intégré dans la version « dev » (spip3).
La doc définitive est sur spip.net . C’est elle qu’il faut consulter
Ce qui suit est une archive dont certains points sont probablement inexacts.
C’est le même que dans le plugin Bonux, donc en l’utilisant, il n’y a plus aucun besoin de CFG.
Pour une migration en douceur de avec CFG / sans CFG + spip dev (stable + bonux) :
- dans fonds/cfg_xx.html, simplement appeler #FORMULAIRE_CONFIGURER_XX
- dans formulaires/configurer_xx.html, mettre ces propriétés CFG habituelles.
- utiliser nom et casier, mais pas de stockage différent de meta ou metapack (en gros) : stockage php et table n’est actuellement pas supporté par bonux. Par contre il supporte une table spip_xx_meta au besoin.Exemples d’utilisation : porte_plume
- http://zone.spip.org/trac/spip-zone/browser/_plugins_/porte_plume_extras/codes/fonds/cfg_porte_plume_codes.html :<!-- titre=<:pp_codes:pp_codes:> --> <!-- descriptif=<:pp_codes:cfg_description_pp_codes:> --> <!-- icone=images/porte_plume_codes-22.png --> <!-- logo=images/porte_plume_codes-128.png --> <div class="ajax">#FORMULAIRE_CONFIG_PORTE_PLUME_CODES</div>
- http://zone.spip.org/trac/spip-zone/browser/_plugins_/porte_plume_extras/codes/formulaires/config_porte_plume_codes.html (mais renommé en « configurer_porte_plume_codes » - et appelé par
#FORMULAIRE_CONFIGURER_PORTE_PLUME_CODES
)<!-- autoriser=configurer --> <!-- refus=<:cfg:refus_configuration_configurer:> --> <!-- nom=porte_plume --> <!-- casier=codes --> <div class="formulaire_spip formulaire_[(#ENV{form})]"> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] <form method="post" action="#ENV{action}"> <div> #ACTION_FORMULAIRE{#ENV{action}} <ul> <li class="fieldset"> <fieldset> <h3 class="legend"><:pp_codes:cfg_activer_extension_sur:></h3> <ul> [(#SAISIE{oui_non,activer_barre_edition, label=<:pp_codes:cfg_activer_barre_edition:>, defaut=on})] [(#SAISIE{oui_non,activer_barre_forum, label=<:pp_codes:cfg_activer_barre_forum:>})] </ul> </fieldset> </li> </ul> <p class="boutons"> <input type="submit" name="_cfg_ok" value="<:cfg:ok:>" class="submit" /> <input type="reset" value="<:reset:>" class="reset" /> </p> </div> </form> </div>
Limites
Ce que ne fait pas
Bonux
(ouspip-dev
) par rapport àCFG
, c’est lister les pages présentes dansfonds/
. Pour passer (pour l’instant) deCFG
à Bonux, il faut en plus :
- supprimerfonds/cfg_xx.html
Ensuite :
- Si ce qu’on veut configurer rentre dans le cadre des quelques pages de config déjà existantes, ajouter un pipeline sur une des pages de configuration pour insérer le formulaire.Exemple avec porte_plume :
dans leplugin.xml
deporte_plume
on trouve :<!-- Pour formulaire de configuration --> <pipeline> <nom>affiche_milieu</nom> <inclure>porte_plume_pipelines.php</inclure> </pipeline>
- dans porte_plume_pipelines.php on trouve :function porte_plume_affiche_milieu($flux){ if ($flux['args']['exec']=='configurer_avancees') $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_porte_plume')); return $flux; }
Ce qui précède ne doit être employé que si ce qu’on veut configurer rentre dans le cadre des quelques pages de config déjà existantes.
- Sinon il vaut mieux :
- créer une nouvelle page privée /prive/exec/configurer_truc.html
- mettre juste un
<h1>
et le#FORMULAIRE_CONFIGURER_TRUC
- déclarer, via leplugin.xml
, un bouton vers cette page dans le menu « Configurer » (ou un autre si ça a plus de sens) du bandeauExemple pour la page privée dans
Compositions
:
http://zone.spip.org/trac/spip-zone/browser/_plugins_/compositions/prive/exec/configurer_compositions.html<h1><:compositions:compositions:></h1> [(#AUTORISER{configurer}|oui) <div class="ajax"> #FORMULAIRE_CONFIGURER_COMPOSITIONS </div> ]
Pour le bouton, ne pas oublier de le déclarer en double :
- pour l’ancien bandeau
- pour le plugin Bandeau qui est intégré en standard dans la version dev de SPIP.
Alternatives
- à l’ancienne :
- plugin CFG traditionnel utilisé par un grand nombre de plugins
- plugin BONUX
- à la ESJ :
- balise #CONFIGURER_METAS définie et utilisée par ESJ pour plusieurs plugins
- à la SPIP3 :