Carnet Wiki

Configurer avec SPIP3 (ou Bonux)

Version 5 — Août 2011 — 86.218.xx.xx

Cette Brouillon de doc a été ,
- reportée et améliorée sur spip.net pour la première partie exec=articles&id_article=5414" class="spip_url spip_out auto" rel="nofollow external">http://www.spip.net/ecrire/?exec=articles&id_article=5414
exec=articles&id_article=5414
-  
à compléter

Voici juste un complément à la version de spip.net

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 pour la création du formulaire de configuration , à 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'
            )
        )
    );
}
?>

Accèder aux valeurs configurées

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 la fonction ecrire_meta (au singulier) pour chaque valeur à actualiser, puis ecrire_metas (au pluriel).

Autorisations

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