# Changelog ## 5.4.0 - 2023-08-13 ### Added - #150 possibilité de déclarer des traitements sans aucune option ### Fixed - #147 Traitement "envoyer par email" : faire fonctionner correctement l'option "Masquer les champs vides" - #156 Traitement "enregistrer" : ne pas provoquer d'erreur SQL lorsqu'on vérifie l'unicité d'un champ date ### Changed - #156 Les vérifications spécifiques aux traitements ont lieu après que les saisies aient été normalisées et vérifiées ## 5.3.2 - 2023-04-16 ### Fixed - Correction du critère `{tri_selon_reponse}` lorsqu'il s'agit de trier suivant une date ## 5.3.1 - 2023-04-02 ### Fixed - #136 En spip 4.0, faire fonctionner le zippage des fichiers de type inconnus - Comptatible SPIP 4.2 ## 5.3.0 - 2023-07-01 ### Changed - #113 Amélioration de l'ergonomie de la configuration des traitements : chaque traitement se trouve désormais dans un onglet (vertical) ### Fixed - #134 Correction bug `{tri_selon_reponse}` sous PHP 8+ ## 5.2.3 - 2022-11-08 ### Fixed - #123 Faire fonctionner l'analyse des réponses pour une saisie `choix_grille` lorsque les clés sont numériques - #127 Zipper correctement les fichiers d'un type non autorisé par SPIP - #128 Refaire fonctionner le téléchargement des fichiers joints aux réponses lors de l'export CSV/XLSX des réponses. ## 5.2.2 - 2022-08-20 ### Added - #119 Remplacer les caractères spéciaux dans les noms des fichiers envoyés ### Fixed - Afficher correctement la date de la précédente réponse dans le mail envoyé après modification d'une réponse ## 5.2.1 - 2022-06-08 ### Fixed - Retour du filtre historique `tenter_unserialize` (deprécié) ## 5.2.0 - 2022-05-31 ### Added - Lors de la construction du formulaire, vérifier à la fin si les champs conditionnant des affichages sont bien présents, retourner un message d'erreur dans le cas contraire - #105 Ajout des pipelines `formidable_pre_raccourcis_arobases` et `formidable_post_raccourcis_arobases` pour ajustement les traitements avant/après l'interprétation des raccourcis `@champs@` - #99 #111 Ajout du filtre `|formidable_deserialize` qui reçoit au choix : * Un tableau déjà déserializé * Un tableau serializé via `json_encode()` * Un tableau serializé via `serialize()` Et renvoie le tableau deserializé, ou la valeur reçue en cas d'échec. - #111 Les traitements reçoivent comme arguments les forment déserializées des traitements et saisies associées au formulaire ### Changed - #99 #111 Les tableaux stockés en base (saisies et traitements d'un formulaire, réponses de champs multivaluées) sont à l'avenir encodés via `json_encode()` (à travers `formidable_serialize()`). Le changement se fait au fur et à mesure de l'édition des formulaires. On peut donc dans une même base avoir des tableau serializé via `serialize()` (anciens) et `json_encode()` (nouveaux). Pour les plugins qui étendent formidable : - dans les traitements, on peut récuperer directement les valeurs déserializées des tableaux, qui sont désormais passés en arguments; - dans les squelettes et autres fonctions perso, utiliser le filtre `|formidable_deserialize`. - #105 `formidable_raccourcis_arobases_2_valeurs_champs` reçoit désormais les arguments suivants : 1. `$chaine` chaîne à transformer 2. `$saisies` liste des saisies du formulaire 3. `$options` tableau d'options, dont : - `brut` (bool) : mettre à true pour donner les "valeurs brutes" ("valeurs techniques") - `sans_reponse` (string|bool) chaîne indiquant l'absent de réponse ; mettre à `true` pour utiliser la chaîne par défaut - `source` (string) source pour trouver la valeur du champ : au choix : `'request'` ou `'base'` - `id_formulaires_reponse` (int) : la réponse concernée - `id_formulaire` : le formulaire concerné - `contexte` contexte d'emploi où l'on cherche à transformer les arobases - La rétrocompatiblité avec les anciens arguments est assuré, sauf pour les deux derniers `$&valeurs` et `&$valeurs_libelles` - #5 Changement des arguments de `#FORMULAIRE_FORMIDABLE` : 1. Id numérique ou identifiant textuel (inchangé) 2. Tableau de valeurs par défaut (inchangé) 3. Tableau d'options, anciennement identifiant de la réponse. Les options possibles sont : - `id_formulaires_reponse` (int) : identifiant de la réponse à modifier - `forcer_modif` (bool) : permettre de forcer la modification d'une réponse, même si non autorisé (utilisé pour la modification des réponses côté privé) - `url_redirect` (string) : url de redirection - `traiter_email_destinataires` (array/csv) : destinataires supplémentaires pour le traitement `email` - `traiter_email_destinataires_methode` (string) : `remplacer` pour que les emails passés en arguments remplacent ceux de la configuration du traitements, `ajouter` pour qu'ils s'y ajoutent ; le réglage par défaut est `ajouter` 4. Déprécié : anciennement `url_redirect` 5. Déprécié : anciennement `forcer_modif` * La rétrocompatibilité des appels est assurée ### Removed - #105 pipeline `formidable_affiche_resume_reponse` supprimé, remplacée par `formidable_pre_raccourcis_arobases` et `formidable_post_raccourcis_arobases` ### Deprecated - Filtre `tenter_unserialize`, utiliser à la place `formidable_deserialize` ### Fixed - #114 Afficher correctement les erreurs lors de la saisie d'une configuration de formulaire - Possibilité d'utiliser des emojis dans les saisies / traitements - #108 #109 Les modèles historiques `<form>` et `<formidable>` dans l'espace privé affichent une alerte si le formulaire n'est pas publié - `secret_du_formidable` créé également à l'installation du plugin, pas seulement à la MAJ - Inclusivité des chaînes de langue - Envoi de fichiers par formulaire : * `_FORMIDABLE_LIENS_FICHIERS_ACCUSE_RECEPTION` fonctionne désormais aussi pour les saisies `fichiers` au sein d'un `fieldset` * Même si l'on insère directement les fichiers dans l'email, préciser par ailleurs à quels champs ils correspondent - Appeller les autorisations de voir les formulaires sur * La liste des formulaires * La page individuelle d'un formulaire - N'afficher que les formulaires publiés dans la liste des formulaires que l'on peut associer à un objet