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

9 discussions

  • Darkurion

    Voilà, c’est résolu.
    J’ai tout supprimé et réinstallé.
    A mon avis cela devait être lié à une base de donnée SQL qui n’avais pas été totalement mise à jour.

    Merci en tout cas pour les conseils.

    Répondre à ce message

  • 1

    Bonjour à tous,

    J’ai créé un nouvel administrateur pour mon site mais lorsque celui-ci veut changer les paramètres de plugins par cfg il n’est pas reconnu comme administrateur avec le message :

    « Seuls les webmestres du site sont autorisés à modifier ces paramètres. »

    Pourtant j’ai lu dans des forums que les administrateurs pouvaient toucher au plugins...

    Sous spip le super-administrateur/webmaster est l’admin en id = 1 je crois ? peut-on avoir plusieurs webmaster ?

    Ma config :
    -  spip 2
    -  plugins : multiflex 3, pluginFCKeditor 2.6.3, Palette, Autorité (utilisé uniquement pour permettre aux rédacteurs de modifier leurs articles)

    • Bonjour,
      Oui, il peut y avoir plusieurs WebMaster. Pour cela, il faut éditer ou créer le fichier mes_options.php dans le répertoire config à la racine du site. Va voir en fin d’article du squelette-multiflex 3.

    Répondre à ce message

  • Joseph Tux

    Bonjour,

    le plugin ACS recommande :


    -  cfg 1.12.3 : pour configurer les crayons.

    Où trouve-t-on ce plugin ?

    Merci à tous ces généreux concepteurs, et autres contributeurs.

    Répondre à ce message

  • Quelqu’un sait-il où il est possible de télécharger CFG, quand le message suivant s’affiche :

    « Nécessite le plugin CFG en version [1.10.2 ;] minimum. »

    En effet, des liens de téléchargement plus nombreux seraient les bienvenus !
    Bon courage à tous...
    jano

    Répondre à ce message

  • Darkurion

    Désolé, mais aucune information particulière est indiqué dans le log.
    Je ne comprend pas pourquoi d’un coup tous mes plugins sont désactivés.

    Répondre à ce message

  • 1
    Darkurion

    CFG 1.10.4 et Palette 1.0.1 fonctionne sous SPIP 1.9.2e
    Je viens de faire un test, mais ne fonctionne pas encore sous SPIP 2 RC1.

    Je suis sous PHP Version 5.2.6

    • J’ai la même version de PHP avec SPIP 2.0 et ces plugins... pas de soucis particulier pourtant...

      Pas d’autres info qui pourrait aider ? de messages particuliers dans les logs peut être en rapport avec l’activation des plugins ? /tmp/*.log

      Ce que tu peux faire :

      • aller sur la page d’admin plugins,
      • activer CFG
      • vider tmp/*.log
      • activer Palette
      • récupérer aussitot tmp/spip.log et voir s’il y a des infos intéressantes dedans...

    Répondre à ce message

  • 1
    Darkurion

    J’ai installé une nouvelle base de Spip 2 RC1, et je voudrais installer le squelettes multiflex.

    J’ai installé tous les plugins nécessaire.
    J’active CFG et pas de problème.
    Ensuite j’active palette et lorsque la page se rafraichit, plus aucun de mes plugins est activé.

    Si j’active palette uniquement, je n’ai pas de problème.
    Ensuite, si j’active CFG, à nouveau tous mes plugings sont désactivés.

    J’ai le même problème avec d’autres plugins sur une base Spip 1.9.2e ( barre type v2, extension multilingue btv2 )

    A voir que les autres n’ont pas ou peu de problème avec l’activation des plugins, je me demande si ce n’est pas lié à mon hebergeur OVH

    • C’est intéressant...

      Juste CFG et Palette, sans autres plugins, ne veulent pas rester ensemble ?

      J’ai testé en local : cfg 1.10.4+palette 1.0.1+crayons+multiflex (tous à jour) et je n’ai pas ton soucis.

      Peux tu dire quelle version de php tu as ? (ecrire/ ?exec=info)

      MM.

    Répondre à ce message

  • 1
    Darkurion

    Je n’arrive pas à activer en même temps : CFG 1.10.4 et Palette 1.0.1.
    J’ai énormément de problème à activer des plugins. Est-ce lié à autres choses ? Je suis chez OVH.

    D’avance merci

    Répondre à ce message

  • 5

    Bonjour,

    J’ai installé cfg et maintenant quand je veux rentré dans la partie privée de mon site j’ai ce message

    Installez cfg voyons !

    Sur le serveur tout est ok le dossier gfg et les droits corrects

    Impossible de rentrer dans l’admin

    Merci

    • pierre-kuhn

      Ou trouve t’on la dernière version de ce plugins

    • La dernière version de CFG est disponible sur la zone :

      http://files.spip.org/spip-zone/cfg.zip

      ++

    • Bonjour, j’ai installé la 1.10 et j’ai ceci pourtant tout à l’air de fonctionner ?

      Warning : in_array() [function.in-array] : Wrong datatype for second argument in /home/monsite/public_html/ecrire/public/composer.php(72) : eval()’d code on line 102

      Merci

    • Cette erreur est due à un « changement important » dans la version 1.8 de CFG... Ce qui veut dire qu’il faut aussi mettre à jour les autres plugins utilisés (peut-être « autorité » ou « inscription2 » ? ou d’autres qui ’utilisaient ces écritures.

      J’avais corrigé tous les plugins présents sur la Zone, il suffit donc, en théorie, de les mettre à jour pour que le problème disparaisse. (et vider le cache).

    • Ca c’est un coup de inscription 2 ou spip_liste ou ne je sais plus quel plugin qui tuait volontairement le chargement si CFG n’était pas chargé.

      Pour corriger : renommer le plugin en question en plugins/_nom_du_plugin (tu dois pouvoir te connecter alors) puis le mettre à jour...

    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