cfg: guida

Spiegazione dettagliata dell’utilizzo di cfg, il plugin di configurazione.

Come scrivere un form fond/cfg_machin e parametrizzarlo per una configurazione facile e standardizzata d’un plugin, modello o altro.
Utilizzo dei dati #CONFIG{machin/truc} o lire_config("machin/truc")

Quest’articolo introduce CFG. Per le funzioni avanzate trovate i link nell’articolo

Unico file di configurazione

cfg è stato motivato dalla necessità ricorrente di impostare configurazioni di plugins o modelli(squelettes).

Il suo tema ricorrente è dunque la semplicità. Infatti una configurazione «machin» (un plugin, un modello o altro) è basata sul file unico fonds/cfg_machin.html, il primo trovato nell’ordine delle priorità di spip... in squelettes/, uno dei plugin attivi o dist/.

Questo «fond» contiene essenzialmente un form e opzionalmente delle proprietà per l’oggetto cfg di controllo.

Nei file di questo plugin si trovano alcuni fond di esempio, nella sottocartella fonds/, come del resto accade per numerosi plugin. Potete trovare i fond /cfg_xxx nei plugin crayons, csv2spip, etc.

La modifica dei dati è realizzata da una semplice chiamata dell’action cfg nel modo: ecrire/?exec=cfg&cfg=machin

Il form

Si tratta di un form HTML standard, interpretato come un modello (squelette). I dati gestiti sono riconosciuti attraverso l’attributo «name» dei tag classici dei controlli di un form:

-  <input type="text" name="truc"...>,
-  <select name="truc"...>,
-  <textarea name="truc" ...>,
-  .etc.

Non dovete utilizzare nomi che cominciano per _ cfg _, sono riservati al funzionamento interno.

Poiché l’action del form esegue controlli di sicurezza, è necessario aggiungere i dati di controllo, semplicemente facendo seguire a<form ...> alcuni input «hidden» ad esempio:
<form method="post">[(#ENV{_cfg_}|form_hidden)]

Infine, i submit di convalida o di soppressione devono essere nominati rispettivamente _ cfg_ok o _cfg_delete (nomi riservati)

Un form minimale sarebbe dunque:

<form method="post">[(#ENV{_cfg_}|form_hidden)]

<input type="text" name="mon_text" value="#ENV{mon_text}" />
<textarea name="mon_area">[(#ENV{mon_area})]</textarea>

<input type="submit" name="_cfg_ok" value="<:OK:>" />
<input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
</form>

Come si può notare, i valori dei dati sono passati nel contesto, dunque ricuperabili da #ENV{truc}

Importante: Il metodo d’analisi dei form di CFG implica il rispetto del seguente ordine negli attributi dei tag utilizzati(textearea, select, input...):

-  type
-  name
-  poi il resto

Ad esempio:
<input type=... name=... .../>
<textearea/select name=... .../>

Le proprietà dell’oggetto cfg

È possibile aggiungere commenti che cominciano per propriete= per precisare proprietà intrinseche dell’oggetto cfg che tratterà il form.

Ad esempio, si può definire così il titolo del form:
[(#REM) titre=Le titre du formulaire] (dalla versione 1.2
<!-- titre=Le titre du formulaire -->
Tale commento SPIP sarà semplicemente passato inpropre(), per una semplice impaginazione.

Si possono anche utilizzare commenti HTML come :
<!-- descriptif=<multi>[fr]Descriptif français [en]In english</multi>-->
Qui, descriptif sarà completamente interpretata come un modello, con cicli e tutti gli altri strumenti di SPIP.

Se non desiderate che un trattamento di base, è preferibile il primo metodo, meno pesante.

Proprieta Descrizione
titre Farà da titolo principale se è presente anche boite
boite Il titolo del form boite, il cui default è titre se présente, ’Configuration machin" altrimenti
descriptif Descrizione in alto a sinistra
nom Nome del target in cui sarà salvata la configurazione, per default è il nome del form xxx in fonds/cfg_xxx

Esistono altre proprietà avanzate che potete trovare nell’articolo Configurazioni avanzate con CFG Configurazioni avanzate con CFG

Utilizzo dei dati

I dati salvati sono serializzati sotto il nome «machin» nella tabella
spip_meta.

Si recuperano nei modelli con il segnaposto #CONFIG che è esteso da cfg per estrarre le suddivisioni con il separatore /
Ad esempio #CONFIG{machin/mon_area} darà il valore del campo mon_area prodotto dal form fonds/cfg_machin.html

In php, si può utilizzare analogamente
lire_config('machin/mon_area')

#CONFIG{} o lire_config() ammettono come secondo parametro il valore da ritornare per default. Ad esempio #CONFIG{machin/mon_area,defaut area} darà defaut area se machin o mon_area sono vuoti.

Segnaposto #CFG_ARBO: piccolo aiuto allo sviluppo

:

La versione 1.0.10 introduce il segnale #CFG_ARBO per facilitare la fase di sviluppo del plugin che utilizza CFG. La sua presenza in un fond, nella parte privata di SPIP, elenca i campi salvati nella tabella spip_meta o nel parametro che gli è passato, con lo stesso principio di #CONFIG. Così, #CFG_ARBO{squelette} elencherà tutti i campi registrati in spip_meta/squelettes dell’esempio precedente.

Ovviamente, qualsiasi contributo è il benvenuto, potete facilmente chiedere di diventare coredattori.

Inoltre, anche se non siete tra gli autori, potete rispondere sul forum se avete un’idea.

cfg nel zip della spip-zone

Discussion

Aucune discussion

Rispondere all’articolo

Chi sei?

Per mostrare qui il tuo avatar, registralo prima su gravatar.com (gratis e indolore). Non dimenticare di fornire il tuo indirizzo email.

Inserisci qui il tuo commento

Questo form accetta scorciatoie SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Per creare i paragrafi, lascia delle linee vuote.

Aggiungi un documento

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 8 dicembre 2007