Configurations avancées avec CFG

Le plugin CFG permet de configurer des squelettes, des plugins. Une utilisation avancée est présentée ici.

Suite à la présentation de CFG à la SPIP Party de Clermont-Ferrand le 10 novembre 2007, voici un article présentant des possibilitées avancées de CFG.

Variables CFG détaillées

Une liste des propriétés des formulaires CFG se trouve ici : API CFG : Paramètres des formulaires

Personnalisation des auteurs

Grace au dépôt ’tablepack’ (un alias ’extrapack’ existe, et sélectionne la table spip_auteurs), il est possible d’affecter des paramètres aux auteurs, comme on le ferait pour une entrée dans spip_meta.

On récupère ensuite les paramètres d’un auteur simplement avec un .
-  #CONFIG{~/nom_du_champ} : affiche le champ de l’auteur connecté (attention au cache si vous l’utilisez dans la partie publique, qui risquerait de prendre les valeurs d’un autre auteur)
-  #CONFIG{~8/nom_du_champ} : où 8 est l’identifiant de l’auteur, affiche les paramètres de cet l’auteur ;
-  [(#CONFIG{~[(#SESSION{id_auteur})]/nom_du_champ})] : dans la partie publique (La balise #SESSION est introduite dans SPIP en 1.9.3) permet d’afficher les paramètres de l’auteur connecté (la présence de #SESSION invalide le cache).

Voici un formulaire qui permet de dire si un auteur souhaite afficher ou non quelques paramètres :

<!-- autoriser=voir  -->
<!-- titre=Personnalisation-->

<!-- depot=tablepack -->
<!-- table=spip_auteurs -->
<!-- colonne=extra -->

<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>

Explications de code :

-  <!-- autoriser=voir  --> : Permet d’afficher le formulaire même pour les redacteurs.
-  <!-- depot=tablepack -->, avec « table » et « colonne » Déclare de stocker dans les champs Extras de la table ’spip_auteurs’
-  <input type="hidden" name="id" class="cfg_id" value="#SESSION{id_auteur}" /> : définit l’identifiant de la table (par défaut spip_auteurs) où les valeurs seront enregistrées. Le class="cfg_id" permet à CFG de savoir que ce champ est à utiliser comme clé primaire. #SESSION{id_auteur} transmet à ce champ la valeur de l’id_auteur connecté (SPIP >= 1.9.3)

récupération des valeurs :

Connecté : [(#SESSION{nom}|sinon{visiteur})]

[(#CONFIG{~[(#SESSION{id_auteur})]/mes_articles}|=={oui}|?{' ',''})
	[(#INCLURE{fond=inc-mes-articles}{visiteur=#SESSION{id_auteur}})]
]

-  #CONFIG{~[(#SESSION{id_auteur})]/mes_articles} : récupère la valeur de «  toto/mes_articles » si l’auteur toto est connecté.

Personnalisation des extras d’autres tables

Sur le même principe que les auteurs, il est possible de personnaliser des champs extras d’autres tables. Il suffit de déclarer le nom de la table dans le formulaire.

<!-- depot=tablepack -->
<!-- table=spip_rubriques -->
<!-- colonne=extra -->

<form method="post">[(#ENV{_cfg_}|form_hidden)]

<fieldset>
<input type="hidden" name="id" class="cfg_id" value="#ENV{id}" size="15" />

<label>Nom du contact :</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>

Explications :

-  Si l’on appelle le formulaire par ?exec=cfg&cfg=nom_du_fond&cfg_id=id_rubrique, alors le formulaire permet d’ajouter un nom de contact.
-  <!-- table=spip_rubriques --> : selectionne la table spip_rubriques.

Récupérer les valeurs :

#CONFIG{rubriques:#ID_RUBRIQUE/nom_contact} : Soit, de façon générique : #CONFIG{Nom_table:ID/nom_du_champ}

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