Version 3 — Août 2011 — 86.204.xx.xx
Brouillon de doc,
- partiellement reportée sur spip.net pour la première partie http://www.spip.net/ecrire/?exec=articles&id_article=5414
- à compléter
Objectif : créer une page de configuration pour une fonctionnalité d’un site, ou pour un plugin
Necessite : SPIP3 ou Bonux pour SPIP2
Etapes :
- créer un formulaire CVT avec juste le HTML (sans les fonctions charger, verifier, traiter) et dont le nom commence par « configurer_ »,
- appeler ce formulaire dans une page exec de nom « configurer_truc » aussi. Dans un cas simple, exec=configurer_truc.html
contient simplement #FORMULAIRE_CONFIGURER_TRUC
Rq : pour ceux qui connaissent, c’est pareil qu’avec le plugin CFG quand on utilisait la dernière méthode propre de CFG c’est-à-dire celle qui utilisait un formulaire CVT
Par exemple, mediabox/prive/exec/configurer_mediabox.html
contient :
[(#AUTORISER{configurer,mediabox}|oui)
<h1><:mediabox:titre_page_configurer_box:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_MEDIABOX
</div>
]
Configuration d’un plugin
Si « truc » est le préfixe d’un plugin, un raccourci vers la page de config est automatiquement ajouté dans la page d’admin des plugins (avec l’icone « tournevis et clé à molette »).
Facilitations à l’aide du plugin Saisies
On peut notamment utiliser le plugin saisie
pour générer le formulaire :
- soit avec les #SAISIES dans le squelette html du formulaire (voir Saisies)
- soit avec juste une fonction formulaires_truc_saisies_dist($params)
dans le ficher PHP de définition du formulaire. Cela permet de déclarer toutes les zones de saisies avec en même temps leurs critères de validité et de vérification (API verifier). Dans ce cas, le fichier html doit exister, mais être vide.
Par exemple, pour le plugin ’produits’ le fichier formulaires/configurer_produits.php
:
<?php
if (!defined('_ECRIRE_INC_VERSION')) return; // Sécurité
function formulaires_configurer_produits_saisies_dist(){
include_spip('inc/config');
return array(
array(
'saisie' => 'input',
'options' => array(
'nom' => 'taxe',
'label' => _T('produits:configurer_taxe_defaut_label'),
'defaut' => lire_config('produits/taxe', ),
),
'verifier' => array(
'type' => 'decimal'
)
)
);
}
?>
Dans Dans un squelette, on accède à :
- en lecture avec la valeur d’une configuration au moyen de la balise [< code>#CONFIG</code > ->http://www [# CONFIG -> http://www .spip.net/fr_article4335.html] (par exemple {{#CONFIG{a_la_une}}}
)
Pour accéder à une valeur de configuration d’un plugin, il faut préfixer le paramètre par l’identifiant du plugin :
#CONFIG{monplugin/a_la_une}
En php on accèdera en lecture aux valeurs avec la fonction lire_config
avec lire_config('monplugin/a_la_une')
, ou directement dans la variable globale : $GLOBALS['meta']['a_la_une']
.
En php :
- avec $GLOBALS[’meta’][’XXXX’] En écriture en lecture , on utilisera la fonction [< code>ecrire_meta</code > - avec [’ ecrire_meta ’ ->http://doc.spip.org/@ecrire_meta] (au singulier) pour chaque valeur à actualiser, puis ecrire_metas
(au pluriel).puis ’ecrire_metas’ en écriture
Les fonctions cvt du plugin de configuration de mediabox sont loin d’être vides
http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/mediabox/formulaires/configurer_mediabox.php
comme elles sont sensées l’être. Alors quoi ?