Version 3 — Septembre 2023 — Maïeul
Une autre méthode a été trouvée pour le besoin, mais ça peut toujours servir ailleurs.
Le besoin est décrit ici : https://git.spip.net/spip-contrib-extensions/agenda/issues/79
/**
* Paramétrer la saisie Événements afin de la restreindre à un événement précis
* @param array $flux
* @return array $flux : le flux modifié avec l'option de saisie rajoutée le cas échéant
**/
function agenda_formulaire_saisies(array $flux) : array {
$form = $flux['args']['form'];
if ($form === 'formidable') {
$args_du_form = $flux['args']['args'];
if (isset($args_du_form[2])
&& isset($args_du_form[2]['id_evenement'])
&& isset($args_du_form[2]['champevenement'])
) {
$id_evenement = $args_du_form[2]['id_evenement']; // Ce qui a été passé en troisième argument du formulaire
$champevenement = $args_du_form[2]['champevenement']; // Ce qui a été passé en troisième argument du formulaire
$flux['data'] = saisies_modifier($flux['data'], $champevenement, ['options' => ['id_evenement' => $id_evenement]], true) ;// Ajouter un id_evenement constant sur la saisie evenement
}
}
return $flux ;
}
Et dans le squelette :
#FORMULAIRE_FORMIDABLE{inscriptionevenement, #ARRAY{input_1, #SESSION{email},input_2, #SESSION{nom}, evenements_1, #ID_EVENEMENT}, #ARRAY{id_evenement, #ID_EVENEMENT, champevenement, evenements_1}}