Version 4 — Août 2011 — 86.218.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 un squelette, on accède à la valeur d’une configuration au moyen de la balise #CONFIG
(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 écriture, on utilisera la fonction ecrire_config
:
ecrire_config('monplugin/a_la_une,3)
On peut aussi utiliser En écriture , on utilisera la fonction ecrire_meta
(au singulier) pour chaque valeur à actualiser, puis ecrire_metas
(au pluriel).
Tous les internautes n’ont pas accès à la page de configuration. Par défaut, seuls les administrateurs ont cette possibilité, mais vous pouvez redéfinir les droits d’accès à votre formulaire de configuration. Utilisez pour cela l’API php autoriser
, ainsi que la balise #AUTORISER
et le filtre sinon_interdire_acces
pour votre squelette de formulaire.
Exemple : [(#AUTORISER{configurer,mediabox}|sinon_interdire_acces)]