Bonjour à tous 
Nouveau sur cette liste, je viens pour vous parler de quelques
petits ajouts que j'ai fait sur le plugin CFG que j'utilise
chez moi, sur la base de la dernière version en date (21/09/07).
En fait, récemment, pour des besoins persos, j'ai entrepris
d'explorer un peu les possibilités offertes par CFG, voir :
http://thread.gmane.org/gmane.comp.web.spip.devel/43450
J'ai ainsi pu découvrir une ou deux fonctionnalités fort utiles,
mais j'ai aussi remarqué quelques petites limitations, j'ai donc
décidé de chercher des solutions pour deux d'entre elles.
----------
- Masquer des onglets
La première contribution tente d'apporter une solution
au problème de l'encombrement, parfois inutile, de la page CFG
de l'espace privé. En effet, à force d'ajouter des formulaires
de configuration pour les squelettes, ou des plugins utilisant
les services de CFG, les onglets (boutons) se multiplient,
et ce phénomène ne peut que s'accentuer avec l'installation
d'autres contributions utilisant CFG.
Et comme CFG s'évertu à lister l'ensemble des fichiers portant
le préfixe "cfg_" se trouvant dans les dossiers "fonds/",
le nombre de ces onglets peut rapidement devenir gênant.
J'ai donc cherché une solution pour masquer les onglets
des formulaires dont la présence n'est pas indispensable,
et réduire ainsi l'encombrement des onglets.
Par exemple, si on souhaite réaliser quelques formulaires
de configuratin pour un squelette (ce qui est mon cas),
il n'est pas vraiment nécessaire que tous ces fichiers soient
listés comme onglets, on peut tout-à-fait en lister juste
les principaux, puis pour les autres prévoir des liens internes
entre formulaires correspondants au même plugin ou squelette.
Alors, la solution que j'ai trouvé, c'est d'ajouter un caractère
particulier aux noms des fichiers qu'on souhaite "masquer",
puis d'ajouter un petit test dans le code de CFG pour qu'il
ne tienne pas compte des fichiers contenant ce caractère.
Bien-sûr, j'ai aussi imaginé que certaines fois le renommage
des fichiers n'est pas souhaitable ou simplement réalisable,
alors on peut utiliser la solution du paramétrage du "titre" CFG,
c'est à dire l'utilisation de la balise "[(#REM) titre=xxx]" que
propose par défaut CFG, c'est en tout cas la méthode que
je préconiserait en premier.
Seul hic de ma solution, c'est que les titres des blocs dans les
formulaires, affichent tout de même le titre avec le caractère
spécial, celui permettant de masquer les onglets correspondants.
Alors, après plusieurs essais, j'ai pensé que le caractère le
moins gênant dans un titre, serait le point d'exclamation,
qu'on placerait à la fin du nom du fichier ou du "titre" CFG.
Alors, pour ceux à qui ça intéresse, voici le code, qui doit
être ajouté dans le fichier "plugins/cfg/exec/cfg.php",
à la ligne 175, juste après le bout de code suivant :
<code>
if ($tmp->titre)
$titre = $tmp->titre;
else
$titre = $fonds;
</code>
Voici le code de la contrib, avec les commentaires explicatifs :
<code>
// Si on souhaite masquer un fichier, c'est a dire,
// ne pas afficher l'onglet correspondant sur la page CFG
// de l'espace prive, il suffit de nommer le fichier
// avec un signe d'exclamation a la fin, juste avant
// l'extension ".html" : "cfg_test!.html".
// Si on ne souhaite pas modifier le nom des fichiers,
// on peut alors noter le titre a afficher avec la methode
// des "#REM" utilisee par CFG, toujours avec un point
// d'exclamation a la fin : [(#REM) titre=test !]
// Si jamais on desire afficher des titres avec un signe
// d'exclamation a la fin sans vouloir pour autant les masquer
// dans les onglets, il suffit alors d'ajouter une espace
// apres le point d'exclamation : [(#REM) titre=test ! ]
// NOTE ! cette contrib sert uniquement a masquer l'onglet
// des formulaires qu'on ne veut pas afficher sur la page CFG
// de l'espace prive, pour ne pas l'encombrer (inutiliement),
// mais les titres des formulaires seront toujours affiches
// avec le point d'exclamation à la fin, bien-sur, c'est un peu
// la raison du choix de ce caractere, un titre finissant par
// un point d'exclamation, ce n'est pas tres genant... 
// IMPORTANT ! cette methode fonctionne uniquement
// avec la syntaxe des balises "#REM", elle est inoperante
// avec la syntaxe des commenaires Html : <!-- titre=test !-->,
// ATTENTION ! pour pouvoir afficher ces formulaires masques,
// comme ils n'auront plus d'onglet, il faudra alors prevoir
// des liens vers eux dans les formulaires qui ont des onglets.
// FredoMkb - 09/07
if (strrpos($titre,"!") !== false
&& strrpos($titre,"!") == strlen($titre)-1)
{ continue; }
</code>
Bien-sûr, les commentaires ne sont nullement nécessaires
au bon fonctionnement du code.
Vous pouvez aussi mettre le code sur une seule ligne.
----------
- Variables dans les #REM
Cette autre contribution tente d'apporter une solution
au passage de variables contextuelles ou d'environnement
aux balises "#REM" de paramétrage de CFG.
En effet, en raison du mode de fonctionnement de CFG,
les balises "#REM" utilisées pour paramétrer certaines
options du plugin, ne permettent aucune inclusion de code
d'ynamique, sous la forme d'autres balises ou filtres,
ainsi qu'on peut le faire sur les autres balises.
En fait, les balies "#REM" de CFG sont "parsées" dans
le plugin avant que Spip ne puisse les traiter, du coup
il est impossible de modifier ces paramétrages de CFG
de manière dynamique.
Par exemple, si nous avons un premier formulaire listant
l'ensemble des auteurs du site, lorsque nous choisissons
un auteur, un autre formulaire s'affiche avec les différents
champs et variables de configuration à mémoriser.
Or, il pourrait être sympa, par exemple, de mettre le nom
de l'auteur dans le titre du formulaire, du genre :
"Configuration de Truc Muche".
Et comme le titre du formulaire est défini par une "#REM"
de CFG, du type : "[(#REM) titre=Configuration]", il aurait été
intéressant d'ajouter une balise dynamique, "#ENV" par ex.,
histoire d'ajouter le nom de l'auteur, sous la forme :
[(#REM) titre=Configuration de #ENV{auteur}]
Et bien, à cause du mode de travail de CFG, ceci est impossible.
Cette contrib tente donc d'apporter une solution pour
pouvoir mettre des variables dans les "#REM" de CFG.
La syntaxe retenue est en tout point semblable à celle utilisée
dans la plupart des balises "normales" de Spip, c'est à dire,
en inscrivant le nom de la variable à utiliser entre accolades,
ce qui donne : [(#REM) titre=Configuration de {auteur}].
On peut y inscrire une valeur statique par défaut, si jamais
la variable est intouvable dans les trois globales analysées,
à savoir "$_ENV", "$_GET" et "$_POST" respectivement.
La valeur par défaut se note pareil que pour la balise "#ENV",
c'est à dire séparée par une virgule de la variable cherchée :
[(#REM) titre=Configuration de {auteur,Fredo}]
Donc, si la variable "auteur" n'est pas trouvée, c'est "Fredo"
qui sera utilisé (enfin "Fredo" juste dans cet exemple 
Évidemment, cet exemple de personnalisation du titre
du formulaire est un peu basique, mais on peut envisager
bien d'autres utilisations, comme le choix dynamique
du "casier" dans lequel la config sera enregistrée, etc.
Alors, toujours pour ceux à qui ça intéresse, voici le code
de cette contrib, qui doit être ajouté à la fin du fichier
"plugins/cfg/inc/cfg_formulaire.php", juste avant la dernière
accolade fermante du fichier, toujours avec les commentaires :
<code>
