Browse Source

- Utiliser `formidable_deserialize` pour lire la liste des saisies d'un

formulaire.
=> Permet la compatibilité avec les nouvelles version de formiddable
Cf. spip-contrib-extensions/formidable#111/

Par ailleurs dans `traiter_mailsubscribe_dist()`, `$traitements` et
`$saisies` n'étaient pas utilisés.
A noter que si on avait voulu les utiliser, on aurait pu les lire
directement dans `$args` (avec la nouvelle version de formidable).
v1
Maïeul 10 months ago
parent
commit
593c4e7ec7
  1. 1
      CHANGELOG.md
  2. 10
      formidable_mailsubscribers_pipelines.php
  3. 2
      traiter/mailsubscribe.php

1
CHANGELOG.md

@ -8,6 +8,7 @@
### Changed
- Compatibilité avec formidable v5.2.0 qui utilise `json_encode()` pour enregistrer les saisies en BDD
- Corrections diverses de chaînes de langue
### Fixed

10
formidable_mailsubscribers_pipelines.php

@ -30,10 +30,18 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @return array
*/
function formidable_mailsubscribers_formulaire_charger($flux) {
include_spip('formidable_fonctions');
// Recherche des éventuels traitements
if (isset($flux['data']['_formidable']['traitements'])) {
$traitements = function_exists('formidable_deserialize') ? formidable_deserialize($flux['data']['_formidable']['traitements']) : unserialize($flux['data']['_formidable']['traitements']);
} else {
$traitements = array();
}
if (
$flux['args']['form'] === 'formidable'
and is_array($traitements = @unserialize($flux['data']['_formidable']['traitements']))
and is_array($traitements)
and in_array('mailsubscribe', array_keys($traitements))
and !(isset($flux['args']['args'][2]) and $flux['args']['args'][2])// argument 2 dans le tableau, 3 de l'appel à #FORMIDABLE_CHARGER, c'est la réponse qu'on précharge, dans ce cas garder les valeurs de la réponse, et ne pas prendre en session
) {

2
traiter/mailsubscribe.php

@ -43,8 +43,6 @@ function traiter_mailsubscribe_dist($args, $retours) {
$formulaire = $args['formulaire'];
$options = $args['options'];
$saisies = unserialize($formulaire['saisies']);
$traitements = unserialize($formulaire['traitements']);
$message_erreur = '';
// Noms des champs configurés

Loading…
Cancel
Save