Skip to content
Extraits de code Groupes Projets
  1. mai 31, 2022
    • Maïeul's avatar
      Début pour le passage du stockage de `serialize` à `json_encode()`. · 4da796fb
      Maïeul a rédigé
      - Le filtre `|tenter_unserialize` est déprécié.
      - Il est remplacé par `|formidable_deserialize`.
      - Ce filtre peut recevoir au choix :
        * Un tableau, qu'il retourne tel quel
        * Un tableau serializé via `json_encode`
        * Un tableau serializé via `serialize`
      - Dans les deux dernier cas, il renvoie la version deserializé, en cas
      de réussite, sinon l'argument passé.
      
      Exemple
      
      ````
      include_spip('formidable_fonctions');
      'filtre');
      $a = ['a' => 'a'];
      
      $a = json_encode($a);
      var_dump($a);
      
      $a = formidable_deserialize($a);
      var_dump($a);
      
      $a = serialize($a);
      var_dump($a);
      
      $a = formidable_deserialize($a);
      var_dump($a);
      
      $a = serialize($a).'plop';//Serialisation corrompu
      var_dump($a);
      
      $a = formidable_deserialize($a);
      var_dump($a);
      ````
      
      Ainsi, pas besoin de convertir tous les formulaires de `serialize`  à
      `json_encode`  à la mise à jour du plugin formidable :
      on peut le faire au fur à mesure qu'on modifie les champs/traitements
      d'un formulaire.
      
      On utilisera donc ce filtre à chaque fois que l'on veut déchiffrer
      depuis la BDD :
      - * traitements d'un formulaire
      - * saisies d'un formulaire
      - * réponse d'un champ multivalué (ex: checkbox)
      4da796fb
    • Maïeul's avatar
      Lors de la configuration des champs du formulaire, vérifier à la soumission de... · e90f7607
      Maïeul a rédigé
      Lors de la configuration des champs du formulaire, vérifier à la soumission de l'ensemble des champs si le `@@`  dans les
      `afficher_si`  sont cohérents avec les champs du formulaire proposé.
      
      On ne vérifie qu'à la fin, et pas au fur et à mesure, car il se peut
      lors de la configuration des champs d'un formulaire qu'on supprime
      des champs qui conditionnaient des afficher_si. La vérification
      ne peut donc se faire que lors que la liste des champs est ferme.
      
      Nécessite saisies 4.4.0
      e90f7607
  2. mai 26, 2022
  3. fév. 20, 2022
  4. jan. 18, 2022
  5. avr. 30, 2021
    • Maïeul's avatar
      saisies#96, · c4a5d57f
      Maïeul a rédigé
      pour gérer le recap final des étapes
      - Faire l'appel au bon code de saisies (même si à terme on devrait tout
      mutualiser)
      - Avoir une option pour ne pas afficher le récapitulatif
      c4a5d57f
    • Maïeul's avatar
      saisies#95, réglage · 03801eda
      Maïeul a rédigé
      de l'affichage des étapes.
      - Au lieu d'ajouter des options à chaque fois qu'on veut faire une présentation différente, on propose une seule option globales _etapes_presentation_, qui selon la valeur, va chercher un squelette ou un autre
      - Pour l'instant on a :
        - 'defaut' => toutes les étapes, comme c'est le cas actuellement
        - 'courante' => uniquement l'étape courante, et dans ce cas le total
        d'étape (adapté aux éventuels afficher_si)
      - On propose cela dans la config globale du formulaire
      - On appel le bon modèle
      03801eda
  6. mars 08, 2021
  7. mars 07, 2021
  8. fév. 09, 2021
    • Maïeul's avatar
      Options globales : regrouper en fieldset. · cd5a4bf3
      Maïeul a rédigé
      La toute dernière version de saisies (3.47.0) transforme automatiquement
      les fieldset des options globales pour ajouter des onglets, dans le
      constructeur de formulaire.
      cd5a4bf3
  9. fév. 02, 2021
  10. jan. 10, 2021
  11. jan. 06, 2021
  12. juil. 17, 2020
  13. mars 08, 2020
  14. mars 01, 2020
    • Maïeul's avatar
      oups, code de test qui restait · 0c399641
      Maïeul a rédigé
      0c399641
    • Maïeul's avatar
      fefd134a pouvait avoir un effet de bord indésirable. · 866a8a5e
      Maïeul a rédigé
      Il arrivait parfois, lorsqu'on modifiait une saisie d'un formulaire
      existant, et qu'on validait la modif des saisies, que formidable nous
      disait que le formulaire avait été modifié en base, alors que ce n'était
      pas le cas.
      Pourquoi cela ?
      Parce que le md5 des saisies initiales stocké par le plugin saisies
      était faite à partir des saisies passés au squelette.
      Or lorsqu'on passe un tableau en contexte de SPIP, celui transforme
      tout `integer`en `string`.
      Cela posait problème si les yaml indiquait des paramètres par défaut
      sous forme d'entier et pas sous forme de string.
      En effet le md5 initial était calculé par saisies sur un tableau du type
      ````
      0 =>
          array (size=4)
            'options' =>
              array (size=4)
                'type' => string 'text' (length=4)
                'size' => string '40' (length=2)
                'autocomplete' => string 'defaut' (length=6)
                'nom' => string 'email_1' (length=7)
            'verifier' =>
              array (size=2)
                'type' => string 'email' (length=5)
                'options' =>
                  array (size=1)
                    ...
            'identifiant' => string '@5e5bed05e689c' (length=14)
            'saisie' => string 'email' (length=5)
      ````
      Alors que la vérification par formidable se faisait sur un tableau du
      type
      
      ````
      0 =>
          array (size=4)
            'options' =>
              array (size=4)
                'type' => string 'text' (length=4)
                'size' => string 40 (length=2)
                'autocomplete' => string 'defaut' (length=6)
                'nom' => string 'email_1' (length=7)
            'verifier' =>
              array (size=2)
                'type' => string 'email' (length=5)
                'options' =>
                  array (size=1)
                    ...
            'identifiant' => string '@5e5bed05e689c' (length=14)
            'saisie' => string 'email' (length=5)
      ````
      Forcément les hash n'était pas les mêmes, et cela provoquait une erreur.
      
      Pour éviter cela, on imite le comportement de spip avant de calculer le
      hash lors de la vérification: on transforme recursivement dans le
      tableau les `integer` en `string`.
      866a8a5e
    • Maïeul's avatar
      sécurité : une fois les saisies stockés en base, les effacer de la session,... · 39f8e17d
      Maïeul a rédigé
      sécurité : une fois les saisies stockés en base, les effacer de la session, pour éviter de retrouver des vieilles
      39f8e17d
    • Maïeul's avatar
      coquille · 0b14937b
      Maïeul a rédigé
      0b14937b
  15. fév. 22, 2020
  16. fév. 21, 2020
  17. oct. 10, 2019
  18. avr. 11, 2019
  19. mars 13, 2019
    • rastapopoulos@spip.org's avatar
      Nouvelle fonctionnalité : on utilise toutes les modifs faites en amont sur... · c12776ca
      rastapopoulos@spip.org a rédigé
      Nouvelle fonctionnalité : on utilise toutes les modifs faites en amont sur Saisies. On peut donc maintenant configurer certaines options globales dans l'interface du constructeur. Pour cela on déclare au constructeur quelles options on accepte (c'est propre au contexte de Formidable).
      
      Dans le lot, il y a donc la personnalisation du bouton final, et… le multi-étapes !
      
      Pour cela, il a fallu faire un refactoring de la fonction verifier() de Formidable où tout était en dur… On l'a donc vidé de son contenu, afin que Formidable utilise enfin l'API CVT de Saisies avec la fonction saisies().
      
      Au passsage, il y avait une vérification propre à un traitement (enregistrement) sur l'unicité : on en profite pour mettre en place un fonctionnement générique et extensible. Tout type de traitement peut désormais déclarer une fonction de vérification qui lui est propre avec traiter/montraitement_verifier(). Et si ça existe, ça sera utilisé.
      
      Il reste un problème avec ce dernier point : pour le cas habituel ça continue de marcher pareil MAIS quand on active les étapes… Pour le moment j'ai fait le choix lorsqu'il y a étapes, de lancer ces vérifications propres aux traitements à la toute fin, quand on sait qu'on est à la dernière étape. Mais du coup ça ne va pas, car les erreurs ajoutées peuvent être sur des champs qui sont à d'autres étapes. Et CVT ne le sait pas, il reste sur la dernière étape. Donc ça montre "Vous avez X erreurs" en haut, mais on ne voit pas forcément le ou les champs précis en erreur s'ils sont ailleurs. Je ne sais pas encore comment résoudre ça…
  20. déc. 21, 2016
  21. juin 01, 2016
  22. fév. 18, 2014
  23. fév. 05, 2014
    • cedric@yterium.com's avatar
      ergonomie de la modification des champs du formulaire : · a22606d7
      cedric@yterium.com a rédigé
      on masque le gros message vert et le gros bouton "Reinitialiser" trop affordants qui sont proposés par saisies.
       A la place un message simple en haut, et le bouton "Revenir à la dernière version enregistrée" dans le cartouche en bas, qui apparaissent dès qu'une saisie est modifiée
      a22606d7
  24. sept. 06, 2012
    • marcimat@rezo.net's avatar
      Migration un peu plus vers SPIP 3 : · 18fdb602
      marcimat@rezo.net a rédigé
      - déclarer 'spip_formulaires' en objet éditorial
      - renommage des pages exec homogène avec le reste de SPIP : formulaires, formulaire  et formulaire_edit
      - décoration des listes de formulaire aux nouvelles normes
      
      Reste à gérer les réponses...
      
      Petit inconvénient aussi, il fait du coup des urls propres pour les formulaires…
      18fdb602
  25. jan. 22, 2012
Chargement en cours