fix: réparer l'utilisation des saisies dans un cvt multi étapes avec #GENERER_SAISIES #215

Closed
b_b wants to merge 2 commits from issue_214 into master

@ -117,14 +117,10 @@ function saisies_generer_html($champ, $env = array()) {
// S'il y a le détail des saisies du même formulaire, on le passe en contexte. Utiliser pour générer correctement les afficher_si
// Attention, en cas de multi-étapes, on passe le contexte de toutes les saisies, classées par etape en cherchant par priorit dans `saisies_par_etapes`, puis `_saisies_par_etapes`, puis `saisies` qu'on regroupe en étape.
if (isset($env['_etape'])) {
if (isset($env['saisies_par_etapes'])) {
$contexte['_saisies'] = $env['saisies_par_etapes'];
} elseif (isset($env['_saisies_par_etapes'])) {
$contexte['_saisies'] = $env['_saisies_par_etapes'];
} else {
$contexte['_saisies'] = isset($env['saisies']) ? saisies_lister_par_etapes($env['saisies']) : array();
}
if (isset($env['_etape']) and isset($env['saisies_par_etapes'])) {
$contexte['_saisies'] = $env['saisies_par_etapes'];
} elseif (isset($env['_etape']) and isset($env['_saisies_par_etapes'])) {
$contexte['_saisies'] = $env['_saisies_par_etapes'];
} else {
$contexte['_saisies'] = isset($env['saisies']) ? $env['saisies'] : array();
}

@ -26,7 +26,7 @@ function saisies_afficher_si_js($condition, $saisies_par_etapes = array()) {
return '';
}
$saisies_par_etapes = pipeline('saisies_afficher_si_saisies', $saisies_par_etapes);
if ($etape = _request('_etape')) {
if ($etape = _request('_etape') and array_key_exists('etape_1', $saisies_par_etapes)) {
$saisies_etape_courante_par_nom = saisies_lister_par_nom($saisies_par_etapes["etape_$etape"]['saisies']);
$saisies_toutes_par_nom = saisies_lister_par_nom($saisies_par_etapes);
} else {

@ -24,6 +24,9 @@ function saisies_chercher_formulaire($form, $args, $je_suis_poste=false) {
if ($fonction_saisies = charger_fonction('saisies', 'formulaires/'.$form, true)) {
$saisies = call_user_func_array($fonction_saisies, $args);
} elseif ($fonction_charger = charger_fonction('charger', 'formulaires/'.$form, true)) {//Fallback, rechercher dans le retour de _charger()
$retour_charger = call_user_func_array($fonction_charger, $args);
$saisies = $retour_charger['_saisies'] ?? [];
}
// Si on a toujours un tableau, on passe les saisies dans un pipeline normé comme pour CVT

Loading…
Cancel
Save