Configurazioni avanzate con CFG

Il plugin CFG permette di configurare modelli e plugin. Guida all’utilizzo avanzato.

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}

Dernière modification de cette page le 16 marzo 2019

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