Carnet Wiki

CFG dans spip core

SPIP-Contrib :: Carnet Wiki :: Recherche :

CFG dans spip core

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 :

  1. <!-- titre=<:pp_codes:pp_codes:> -->
  2. <!-- descriptif=<:pp_codes:cfg_description_pp_codes:> -->
  3. <!-- icone=images/porte_plume_codes-22.png -->
  4. <!-- logo=images/porte_plume_codes-128.png -->
  5. <div class="ajax">#FORMULAIRE_CONFIG_PORTE_PLUME_CODES</div>

Télécharger

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

  1. <!-- autoriser=configurer -->
  2. <!-- refus=<:cfg:refus_configuration_configurer:> -->
  3. <!-- nom=porte_plume -->
  4. <!-- casier=codes -->
  5.  
  6. <div class="formulaire_spip formulaire_[(#ENV{form})]">
  7.  
  8. [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
  9. [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
  10.  
  11. <form method="post" action="#ENV{action}">
  12. <div>
  13. #ACTION_FORMULAIRE{#ENV{action}}
  14. <ul>
  15. <li class="fieldset">
  16.  
  17. <fieldset>
  18. <h3 class="legend"><:pp_codes:cfg_activer_extension_sur:></h3>
  19. <ul>
  20. [(#SAISIE{oui_non,activer_barre_edition,
  21. label=<:pp_codes:cfg_activer_barre_edition:>,
  22. defaut=on})]
  23.  
  24. [(#SAISIE{oui_non,activer_barre_forum,
  25. label=<:pp_codes:cfg_activer_barre_forum:>})]
  26. </ul>
  27. </fieldset>
  28. </li>
  29. </ul>
  30.  
  31. <p class="boutons">
  32. <input type="submit" name="_cfg_ok" value="<:cfg:ok:>" class="submit" />
  33. <input type="reset" value="<:reset:>" class="reset" />
  34. </p>
  35. </div>
  36. </form>
  37. </div>

Télécharger

Limites

Ce que ne fait pas Bonux (ou spip-dev) par rapport à CFG, c’est lister les pages présentes dans fonds/ . Pour passer (pour l’instant) de CFG à Bonux, il faut en plus :
-  supprimer fonds/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 le plugin.xml de porte_plume on trouve :

  1. <!-- Pour formulaire de configuration -->
  2. <pipeline>
  3. <nom>affiche_milieu</nom>
  4. <inclure>porte_plume_pipelines.php</inclure>
  5. </pipeline>

Télécharger


-  dans porte_plume_pipelines.php on trouve :

  1. function porte_plume_affiche_milieu($flux){
  2. if ($flux['args']['exec']=='configurer_avancees')
  3. $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_porte_plume'));
  4. return $flux;
  5. }

Télécharger

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 le plugin.xml, un bouton vers cette page dans le menu "Configurer" (ou un autre si ça a plus de sens) du bandeau

Exemple pour la page privée dans Compositions :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/compositions/prive/exec/configurer_compositions.html

  1. <h1><:compositions:compositions:></h1>
  2. [(#AUTORISER{configurer}|oui)
  3. <div class="ajax">
  4. #FORMULAIRE_CONFIGURER_COMPOSITIONS
  5. </div>
  6. ]

Télécharger

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 :

-  à la ESJ :

-  à la SPIP3 :