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.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |