Seguito della presentazione di CFG allo SPIP Party del 10 novembre 2007 di Clermont-Ferrand, ecco un articolo che presenta le ppotenzialità avanzate di CFG.
Dettaglio delle Variabili di CFG
Proprietà | 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 |
liens* | Link su altri cfg pubblicati in questa colonna |
onglet | (v1.0.8) mettere ’non’ per non inserire il link (onglet) a questo fond sulla pagina di configurazione di cfg |
nom | Nome del target in cui sarà salvata la configurazione, per default è il nome del form xxx in fonds/cfg_xxx |
casier | Permette (opzionale) di creare sotto-matrici, ad esempio per separare una config in molte sotto-form |
storage | Permette di salvare i valori di configurazione in destinazioni differenti rispetto a spip_meta (metapack). Valori possibili : extrapack (campi extra delle tabelle), php (in un file php nella cartella /local/cfg), classic (come fa SPIP con i record dei meta), table (in campi di una tabella , ma non funziona ancora nella versione attuale) |
table | Permette di definire la tabella di salvataggio (nel caso storage=extrapack o tabella) |
autoriser | Permette di dichiarare il tipo d’autorizzazione necessaria per l’accesso alla pagina di configurazione |
Quando la proprietà è una matrice alla quale si vuole aggiungere un elemento, occorre fare precedere = da un asterisco * come : <!-- liens*=crayons -->
La proprietà onglet
Permette di inserire (per default) un’unghia nella pagina ecrire/?exec=cfg
. Quest’unghia prende il nome del file fond (toto, se il file si chiama cfg_toto.html).
Così, se un plugin/squelette ha molti fond, è possibile limitare il numero di unghie sulla pagina.
La proprietà casier
Permette di salvare i campi di una form in una matrice, classificando le sue variabili.
Se nom=monsquelette
e casier=coso
,
allora si recuperano i valori con #CONFIG{monsquelette/coso/nome_del_campo}
Note su casier : È possibile indicare sottomatrici in casier :
<!--casier=option/navigation-->
.
Si recuperano allora i valori del form con #CONFIG{squelette/option/navigation/champ_du_formulaire}
Esempi delle proprietà onglets, liens e casier
Prendiamo ad esempio un modello che utilizza 3 fond distinti (cfg_squelette, cfg_squelette_complement1, cfg_squelette_complement2). Si possono definire i file così :
- cfg_squelette
<!-- titre=Mio modello-->
<!-- descriptif=Mia descrizione -->
<!-- nom=modello -->
<!-- liens*=squelette_complement1 -->
<!-- liens*=squelette_complement2 -->
#CACHE{0}
... la form ...
- cfg_squelette_complement1
<!-- titre=Mio modello - options 1 -->
<!-- descriptif=Mia descrizione... -->
<!-- nom=modello -->
<!-- casier=option1 -->
<!-- onglet=non -->
<!-- liens*=modello -->
<!-- liens*=squelette_complement2 -->
#CACHE{0}
... la form ...
- cfg_squelette_complement2
<!-- titre=Mio modello - options 2 -->
<!-- descriptif=Mia descrizione... -->
<!-- nom=modello -->
<!-- casier=option2 -->
<!-- onglet=non -->
<!-- liens*=modello -->
<!-- liens*=squelette_complement1 -->
#CACHE{0}
... la form ...
I tre fond sono registrati nella variabile spip_meta ’modellio’. Il fond squelette_complement1 si salva in ’modello/option1’ (casier=option1) : si potrà dunque fare #CONFIG{modello/option1/champ_du_formulaire}
.
Solo un link verso il primo fond (modello) sarà pubblicato nella pagina /ecrire/ ?exec=cfg poiché gli altri due hanno la variabile onglet=non. Un link verso gli altri fond sarà inserito se è all’interno di uno dei tre file.
(/ecrire/?exec=cfg&cfg=modello
).
Personalizzazione degli autori
Grazie allo storage extrapack, è possibile aggiungere parametri agli autori, come farebbe un’entry in spip_meta.
Si recuperano in seguito i parametri d’un autore semplicemente con un .
- #CONFIG{~/nom_du_champ}
: recupera il campo dell’autore collegato (attenzione alla cache se si utilizza nella parte pubblica, che rischierebbe di prendere i valori di un altro autore)
- #CONFIG{~toto/nom_du_champ}
: dove toto è un login, pubblica i parametri dell’autore ’toto’ ;
- [(#CONFIG{~[(#SESSION{login})]/nom_du_champ})]
: nella parte pubblica (Il segnaposto #SESSION
introdotto in SPIP 1.9.3) permette d’inserire i parametri dell’autore collegato
(la presenza di #SESSION
invalida la cache).
Ecco un form che permette di impostare se un autore vuole pubblicare o no alcuni parametri :
<!-- autoriser=voir -->
<!-- titre=Personnalisation-->
<!-- storage=extrapack -->
<form method="post">[(#ENV{_cfg_}|form_hidden)]
<fieldset>
<input type="hidden" name="id" class="cfg_id" value="#SESSION{id_auteur}" />
<label>Afficher ses articles ?</label>
<select name="mes_articles">
<option value="oui"[(#ENV{mes_articles}|=={oui}|?{' selected="selected"'})]>Oui</option>
<option value="non"[(#ENV{mes_articles}|=={non}|?{' selected="selected"'})]>Non</option>
</select>
<br />
</fieldset>
<input type="submit" name="_cfg_ok" value="<:OK:>" />
<input type="reset" value="<:Reset:>" />
<input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
</form>
Spiegazione del codice :
- <!-- autoriser=voir -->
: Permette di inserire lo stesso form per i redattori.
- <!-- storage=extrapack -->
: Dichiara di salvarlo nei campi Extras
- <input type="hidden" name="id" class="cfg_id" value="#SESSION{id_auteur}" />
: definisce il campo da usare come chiave per la tabella (di default spip_auteurs) in cui i valori saranno registrati. class="cfg_id"
permette a CFG di sapere qual è la chiave primaria. #SESSION{id_auteur}
assegna a questo campo il valore dell’id_auteur connesso (SPIP >= 1.9.3)
recupero dei valori :
Connesso : [(#SESSION{nom}|sinon{visiteur})]
[(#CONFIG{~[(#SESSION{login})]/mes_articles}|=={oui}|?{' ',''})
[(#INCLURE{fond=inc-mes-articles}{visiteur=#SESSION{id_auteur}})]
]
- #CONFIG{~[(#SESSION{login})]/mes_articles}
: recupera il valore di « toto/mes_articles » se l’autore toto e connesso.
Personalizzare gli extras di altre tabelle
Sullo stesso principio degli autori, è possibile personalizzare campi extras di altre tabelle. Basta dichiarare il nome della tabella nel form.
<!-- storage=extrapack -->
<!-- table=spip_rubriques -->
<form method="post">[(#ENV{_cfg_}|form_hidden)]
<fieldset>
<input type="hidden" name="id" class="cfg_id" value="#ENV{id}" size="15" />
<label>Nome del contatto :</label>
<input type="text" name="nom_contact" />
<br />
</fieldset>
<input type="submit" name="_cfg_ok" value="<:OK:>" />
<input type="reset" value="<:Reset:>" />
<input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
</form>
Spiegazioni :
- Se si chiama il form con ?exec=cfg&cfg=nom_du_fond&cfg_id=id_rubrique
,
il form permette di aggiungere il nome del contatto.
- <!-- table=spip_rubriques -->
: seleziona la tabella spip_rubriques.
Recuperare i valori :
#CONFIG{rubriques:#ID_RUBRIQUE/nom_contact}
: O, in generale : #CONFIG{Nome_tabella:ID/nome_del_campo}
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 : |