API CFG : Paramètres des formulaires

CFG offre de nombreuses options pour paramétrer les formulaires CFG.

Ces paramètres interprétés après compilation par CFG du formulaire. Ils se déclarent en utilisant la syntaxe suivante :

<!-- param=valeur -->

Accès rapide


Descriptions : autoriser, boite, casier, colonne, depot, descriptif, head, liens, liens_multi, nom, onglet, refus, table, titre

Exemples : casier,onglets,liens

Aperçu des paramètres

Propriété Description
autoriser Type d’autorisation pour l’accès au formulaire
boite Titre de la boite du formulaire
casier Faire une arborescence dans le stockage
colonne Colonne de stockage
depot Choix du lieu de depot : meta, metapack, php, table, tablepack
descriptif Descriptif affiché
head Ajoute du contenu dans le head de l’espace privé
liens* Liens vers d’autres CFG
liens_multi* Liens vers des CFG « multi »
nom Nom du stockage
onglet Cacher/afficher l’onglet du formulaire CFG
refus Message de refus en cas de non autorisation
table Table de stockage
titre Titre du formulaire

Les paramètres en détail


autoriser
Permet de déclarer le type d’autorisation nécessaire pour l’accès à la page de configuration


boite
Le titre de la boite formulaire, défaut titre si présent, ’Configuration quelque_chose" sinon


casier
Elle permet optionnellement de stocker les champs de formulaire dans un tableau.

Si nom=monsquelette et casier=chose, alors on récupère les valeurs par #CONFIG{monsquelette/chose/nom_du_champ}

Note sur casier :
Il est possible d’indiquer des sous tableau dans casier :
<!-- casier=option/navigation -->. On récupère alors les valeurs du formulaire par #CONFIG{squelette/option/navigation/champ_du_formulaire}


colonne
Selectionne une colonne particulière avec le storage ’tablepack’ (par défaut ’extra’ qui évoluera peut être)


depot
Permet de stocker les valeurs ailleurs que dans spip_meta (metapack). Stockage possible :

  • meta : comme le fait SPIP avec le stockage des metas,
  • metapack : dans une entrée de la table spip_meta
  • php : dans un fichier php dans le repertoire /local/cfg,
  • table : dans une ligne d’une table sql (nécessite un champs cfg_id)
  • tablepack : colonne que l’on choisit dans une table (défaut ’extra’)


descriptif
Le descriptif affiché en haut de colonne gauche


head
(v1.3.7) Ajoute du contenu dans le head (html) de l’espace privé.
Attention, ce contenu ne sera pas présent en passant par #FORMULAIRE_CFG


liens*
Les liens sur autre cfg affichés dans cette colonne

  • exemple : <!-- liens*=prefixe:quelque_chose -->
  • ’prefixe :’ permet de selectionner la chaine de langue
    <:prefixe:quelque_chose :> comme titre du lien.
  • Ce paramètre nécessite une * [1]


liens_multi*
(v1.3) Liens vers un fond cfg qui utilise des identifiants multiples : ce lien ajoute un formulaire


nom
Le nom du meta où sera stockée la configuration, par défaut c’est le nom du formulaire, xxx dans fonds/cfg_xxx


onglet
Elle permet d’afficher (par défaut) ou non un onglet dans la page ecrire/?exec=cfg. Cet onglet prend le nom du fichier fond (toto, si le fichier s’appelle cfg_toto.html).

Ainsi, si un plugin/squelette possède plusieurs fonds, cela permet de limiter le nombre d’onglets sur la page. Il est possible d’indiquer quel est l’onglet « parent » dans un fond CFG en mettant <!-- onglet=nom_du_parent -->


refus
Permet de définir un message spécifique en cas de non autorisation à la page de configuration


table
Permet de définir la table de stockage (dans les cas avec storage=tablepack ou table)


titre
Un des 2 titres, fera le gros titre si boite est aussi présent

Exemple des propriétés onglets, liens et casier

Prenons l’exemple d’un squelette qui utilise 2 fonds distincts (cfg_squelette, cfg_squelette_complement). On peut définir les fichiers comme cela :

  • cfg_squelette
    <!-- titre=Mon squelette -->
    <!-- descriptif=Mon descriptif -->
    <!-- nom=squelette -->
    
    <!-- liens*=squelette -->
    <!-- liens*=squelette_complement -->
    
    #CACHE{0}
    ... le formulaire ...
  • cfg_squelette_complement
    <!-- titre=Mon squelette - options 1 -->
    <!-- descriptif=Mon descriptif... -->
    <!-- nom=squelette -->
    <!-- casier=option -->
    
    <!-- onglet=squelette -->
    <!-- liens*=squelette -->
    <!-- liens*=squelette_complement -->
    
    #CACHE{0}
    ... le formulaire ...

Les 2 fonds vont s’enregistrer dans la variable de spip_meta ’squelette’. Le fonds/cfg_squelette_complement.html va se stocker dans ’squelette/option’ (casier=option) : on pourra donc faire #CONFIG{squelette/option/champ_du_formulaire}.

Seul un lien vers le premier fond (squelette) sera affiché dans la page /ecrire/?exec=cfg car l’autre fond à la variable onglet définie (et différent de ’oui’).

Notes

[1Lorsque la propriété est un tableau auquel on veut rajouter un élément, il faut faire précéder le = par une astérisque * comme :
<!--  liens*=crayons -->

Discussion

2 discussions

  • 1

    Bonjour,

    Après quelques tests , il apparait qu’il y a une erreur dans la méthode ajouter_erreur($champ, $message) , en effet si on regarde les sources on utilise la variable $champs et $champ pour placer le message d’erreur.

    Résultat le message d’erreur est ajouter avec la chaîne vide.

    Il faudrait donc corriger dans la prochaine release.

    Là ou ça coince :

    	/**
    	 * ajoute une erreur sur un champ donne
    	 * 
    	 * @param string $champ
    	 * @param string $message 
    	 */
    	function ajouter_erreur({{$champ}}, $message) {
    		$this->messages['erreurs'][{{$champs}}] = isset($this->messages['erreurs'][{{$champs}}]) 
    			? $this->messages['erreurs'][{{$champs}}] .= '<br />' . $message
    			: $message;
    	}

    Répondre à ce message

  • 1

    Si je comprend bien
    liens*=toto donne l’affichage d’un lien vers la page de configuration toto (fond=toto) dans un menu à droite.

    Est-il possible de rendre l’affichage de ce lien optionnel genre :

    [(#CONFIG{monplug/mavariabledeconf}|=={oui}|?{' ',''})
    <!-- lien*=toto -->]

    Répondre à ce message

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