Entre temps, je pense avoir compris une partie du problème.

La fonction "pipeline()" qui est utilisée par SPIP a un retour différent en fonction du nombre d’éléments dans le tableau qu’elle reçoit. S’il y a 2 éléments et la clé 'data' (args + data le plus souvent), elle ne retourne que le contenu de 'data'.

Dans le pipeline charger de l’exemple indiqué de cform, on insère les saisies à la racine directement, ce qui me semble faux (on obtient args + data + _champs_extras_saisies), ce qui modifie le retour de 'pipeline', tout en insérant la clé pour les saisies a priori au mauvais endroit.

Tentes avec cette correction ( ['data'] en plus sur l’affectation des saisies) :

function cform_formulaire_charger($flux) {
        if ($flux['args']['form'] == 'newsletter_subscribe') {
                include_spip('inc/cextras');
                if ($saisies = 
cextras_obtenir_saisies_champs_extras('mailsubscribers')) {
                        $flux['data']['_champs_extras_saisies'] = $saisies;
                }
        }
        return $flux;
}

MM.

Le 04/09/2019 à 14:58, Matthieu Marcillaud a écrit :
Le 04/09/2019 à 14:32, Jean Marie Grall a écrit :

L'environnement avec CForm : http://spip.pastebin.fr/58134
L'environnement sans CForm : http://spip.pastebin.fr/58135

De *quel* environnement tu parles ? à quel endroit ?

MM.
----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone


----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Répondre à