Browse Source

Suivant l'idée de @rastapopoulos

Pb #78 étape 2 : les saisies masquées par afficher_si sont mises à `''` et
pas à `null`
pull/94/head
Maïeul 2 years ago
parent
commit
3a1039cff2
  1. 13
      inc/saisies_afficher_si_php.php

13
inc/saisies_afficher_si_php.php

@ -24,10 +24,9 @@ include_spip('inc/saisies_afficher_si_commun');
* - l'option de la saisie individuelle `afficher_si_avec_post` est activée;
* - l'option globale `afficher_si_avec_post` est activée;
* - l'option de la saisie individuelle `afficher_si_remplissage_uniquement` est activée.
* - On la retire de `_request()` (valeur passée à `null`), SAUF SI l'une des deux conditions suivantes est remplie:
* - On modifier le résulta de `_request()` pour avoir une chaîne vide (`''`), SAUF SI l'une des deux conditions suivantes est remplie:
* - l'option `afficher_si_avec_post` est activée;
* - l'option globale `afficher_si_avec_post` est activée.
*
* Sur le détail des usages des différentes options, voir
* https://contrib.spip.net/5081#Options-supplementaires
*
@ -80,7 +79,7 @@ function saisies_verifier_afficher_si($saisies, $env = null, $saisies_toutes_par
if ($saisie['saisie'] == 'explication') {
unset($saisies[$cle]);
} else {
saisies_set_request_null_recursivement($saisie);
saisies_set_request_empty_string_recursivement($saisie);
}
}
}
@ -103,18 +102,18 @@ function saisies_verifier_afficher_si($saisies, $env = null, $saisies_toutes_par
/**
* Pose un set_request null sur une saisie et toute ses sous-saisies.
* Pose un set_request `''` sur une saisie et toute ses sous-saisies.
* Utiliser notamment pour annuler toutes les sous saisies d'un fieldeset
* si le fieldset est masquée à cause d'un afficher_si.
* @param array $saisie
**/
function saisies_set_request_null_recursivement($saisie) {
function saisies_set_request_empty_string_recursivement($saisie) {
// Attention, tout champ peut être un sous-tableau !
saisies_set_request($saisie['options']['nom'], null);
saisies_set_request($saisie['options']['nom'], '');
if (isset($saisie['saisies'])) {
foreach ($saisie['saisies'] as $sous_saisie) {
saisies_set_request_null_recursivement($sous_saisie);
saisies_set_request_empty_string_recursivement($sous_saisie);
}
}
}

Loading…
Cancel
Save