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}

updated on 16 March 2019

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom