Evolutions de CFG 1.10

Principal changement : remaniement et changement de syntaxe des formulaires publics avec CFG.

Les évolutions de CFG visent actuellement 2 choses : simplifier et réduire au maximum son code, tout en permettant de l’étendre si besoin, et préparer le futur pour SPIP 2.0 et notamment pour les formulaires dynamiques.

Changements de la version 1.8

Les modifications concernent essentiellement une simplification du code pour lire et ecrire les données transmises à CFG (avec dans l’idée de peut être ajouter un jour au core de SPIP les fonctions lire_config(), ecrire_config() et effacer_config() que propose CFG).

Des jeux de tests (dits « tests unitaires ») ont étés créés pour l’occasion afin de vérifier que les modifications ultérieures de CFG ne cassent pas la compatibilité sur les ces fonctions cités. Ils seront à compléter.

Un changement important :

CFG ne supporte plus l’écriture (hack) #CONFIG{expression,'',''}, à remplacer par #CONFIG{expression,#ARRAY}

Changements de la version 1.9

Uniquement pour SPIP 2.0 dev svn : les modifications concernent les formulaires publics et ajax réalisés en CFG . La syntaxe précédente #FORMULAIRE_CFG{nom} n’est plus utilisée ni fonctionnelle.

On s’appuie maintenant encore plus sur la nouvelle syntaxe simplifiée des formulaires dynamiques, nommés CVT (pour Charger, Vérifier, Traiter). Ces formulaires sont stockés dans le dossier formulaires/ (et non pas dans le dossier fonds/).

Les formulaires CVT permettent de réaliser des formulaires utilisables à la fois dans l’interface publique ou privée du site, en ajax (rechargement partiel de la page) ou non (rechargement de toute la page).

Syntaxe :
#FORMULAIRE_NOM
#FORMULAIRE_NOM{#ID}

Fonctionnement avec CFG : Lorsqu’un formulaire formulaires/xx.html ne possède pas de fonction de chargement formulaires_xx_charger() alors c’est le parseur de CFG qui est utilisé, pour charger, vérifier et traiter le formulaire.

Différences avec un formulaire CFG dans le dossier fonds/ :

  • les fonds/ s’affichent dans ?exec=cfg, pas les formulaires/
  • les fonds/ ont [(#ENV{_cfg_}|form_hidden)], pas les formulaires/
  • en revanche, les formulaires/ ont #ACTION_FORMULAIRE{#SELF}, pas les fonds/

Exemple de formulaire CFG/CVT : Soit le formulaire : formulaires/exemple_configurer_site.html

Il est appelé par : #FORMULAIRE_EXEMPLE_CONFIGURER_SITE ou pour l’avoir en ajax (en l’encadrant d’une class ’ajax’) par : <div class="ajax">#FORMULAIRE_EXEMPLE_CONFIGURER_SITE</div>

<!-- depot=meta -->
<!-- autoriser=configurer -->

#CACHE{0}

[(#ENV{editable}|oui)
<div class="formulaire_spip formulaire_cfg formulaire_exemple_configurer_site">
[<p class='formulaire_erreur'>(#ENV*{message_erreur})</p>]
[<p class="formulaire_message">(#ENV*{message_ok})</p>]

<form method="post" action="#SELF"><div>
#ACTION_FORMULAIRE{#SELF}

<fieldset>
<legend><:cfg:storage_classic:></legend>
<ul>
	<li class="editer_email">
		<label>Email webmaster</label>
		[<span class='erreur'>(#ENV**{erreurs}|table_valeur{email_webmaster})</span>]
		<input type="text" name="email_webmaster" class="text" value="#ENV{email_webmaster}" size="30" />
	</li>
	<li class="editer_nom_site">
		<label>Nom site</label>
		[<span class='erreur'>(#ENV**{erreurs}|table_valeur{nom_site})</span>]
		<input type="text" name="nom_site" class="text" value="#ENV{nom_site}" size="50" />
	</li>
	<li class="editer_descriptif_site">
		<label>Descriptif site</label>
		[<span class='erreur'>(#ENV**{erreurs}|table_valeur{descriptif_site})</span>]
		<textarea name="descriptif_site" rows="4" cols="40" style="width:100%;">[(#ENV{descriptif_site})]</textarea>
	</li>	
</ul>
</fieldset>

<input type="submit" name="_cfg_ok" value="<:cfg:OK:>" />

</div></form>
</div>
]
[(#ENV{editable}|non)
	Vous devez être connecté en administrateur pour pouvoir utiliser ce formulaire.
]

Changements de la version 1.10

CFG ne gère plus de téléchargements de librairies, et ne s’occupe plus du selecteur de couleur.

Le plugin palette : Pour mutualiser le code du sélecteur de couleur ajouté a CFG entre plusieurs plugins, celui-ci a déménagé dans un second plugin, « Palette », fonctionnant sous SPIP 1.9.2 et SPIP 2.0 .

En conséquence, les fonds CFG qui utilisaient la classe css « cfg_couleur » pour afficher un sélecteur de couleur nécessitent maintenant le plugin « Palette ». Notez bien que le plugin est optionnel, son absence ne gène pas le fonctionnement normal du formulaire, seulement la palette ne s’affiche pas.

Le plugin palette s’affiche en utilisant la classe css « palette » sur un champ de formulaire. Il est donc conseillé de remplacer la classe css « cfg_couleur » par « palette » dans les formulaires l’utilisant. Cependant, la rétrocompatibilité de la classe css ’cfg_couleur’, devenue obsolète, sera assurée quelques temps.

Changement d’api des tests de validation des champs de formulaire :

Les points d’entrée concernant les champs de formulaires ayant une classe ’type_xxx’, reçoivent maintenant les mêmes arguments que les autres points d’entrées, soit le nom du champ ainsi que l’instance de l’objet cfg. Exemple :

function cfg_verifier_type_pwd($champ, &$cfg) {
	if (strlen($cfg->val[$champ]) < 5){
		$cfg->ajouter_erreur($champ, _T('cfg:erreur_type_pwd', array('champ'=>$champ)));
	}
	return true;
}

Permettre des actions pour un formulaire particulier :

Il était possible pour un formulaire d’utiliser une fonction de vérification pour les champs postés (comme avec les formulaires dynamiques de SPIP 2). La syntaxe change légèrement, mais il est maintenant possible de réaliser d’intégrer d’autres points d’entrées de la même manière.

Particulièrement, il est possible d’effectuer des actions post traitements (ou pre traitements). Les actions possibles sont les mêmes que celles des paramètres ou des classes css : pre_charger, charger, pre_verifier, verifier, pre_traiter, post_traiter.

Les fonctions nommées ’cfg_vue_action’ reçoivent en argument l’instance de la classe CFG :

function cfg_toto_post_traiter(&$cfg){
   // actions post traitement
}

Un cas particulier est l’action ’verifier’ qui retournait un tableau d’erreur. Ce retour est devenu obselète, il vaut mieux ajouter depuis la fonction les erreurs en utilisant la fonction ajouter_erreurs() :

function cfg_exemple_verifier(&$cfg){
    $err = array();
    if ($cfg->val['email1'] != $cfg->val['email2']) {
        $err['message_erreur'] = "Erreur sur les emails";
        $err['email1'] = "Les emails ne sont pas identiques";
    }
    
   return $cfg->ajouter_erreurs($err);
   // anciennement : return $err;
}

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