cfg : guida

Spiegazione dettagliata dell’utilizzo di cfg, il plugin di configurazione.

Come scrivere un form fond/cfg_machin e parametrizzarlo per una configurazione facile e standardizzata d’un plugin, modello o altro.
Utilizzo dei dati #CONFIG{machin/truc} o lire_config("machin/truc")

Quest’articolo introduce CFG. Per le funzioni avanzate trovate i link nell’articolo

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.

Ovviamente, qualsiasi contributo è il benvenuto, potete facilmente chiedere di diventare coredattori.

Inoltre, anche se non siete tra gli autori, potete rispondere sul forum se avete un’idea.

cfg nel zip della spip-zone

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