Carnet Wiki

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 :

<!-- 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 (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 :

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

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

-  à la ESJ :

-  à la SPIP3 :

JLuc - Mise à jour :22 août 2013 à 15h14min