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}

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom