Browse Source

amélioration du phpdoc pour y voir plus clair sur les options saisies_veirfier_afficher_si()

pull/55/head
Maïeul 2 years ago
parent
commit
1991948140
  1. 39
      inc/saisies_afficher_si_php.php

39
inc/saisies_afficher_si_php.php

@ -18,15 +18,18 @@ include_spip('inc/saisies_afficher_si_commun');
* Traitement des saisies ayant l'option `afficher_si`.
*
* Lorsque qu'on affiche les saisies avec `#VOIR_SAISIES`,
* si des saisies ont l'option `afficher_si`
* et ni l'option `afficher_si_avec_post` ni l'option globale `poster_afficher_si`,
* et que leurs conditions d'affichage ne sont pas remplies,
* alors elles sont retirées du tableau de saisies.
*
* Cette fonction sert aussi lors de la vérification des saisies avec saisies_verifier().
* À ce moment là, les saisies vérifiant ces critères sont retirées de _request
* (on passe leur valeur à NULL).
* ou lorsqu'on les vérifie avec saisies_verifier().
* Si les conditions d'affichage d'une saisie n'est pas remplie :
* - On la retire du tableau de saisies, SAUF SI l'une des trois conditions suivantes est remplie:
* - l'option de la saisie individuelle `afficher_si_avec_post` est activée;
* - l'option globale `poster_afficher_si` 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:
* - l'option `afficher_si_avec_post` est activée;
* - l'option globale `poster_afficher_si` est activée.
*
* Sur le détail des usages des différentes options, voir
* https://contrib.spip.net/5081#Options-supplementaires
* @param array $saisies
* Tableau de descriptions de saisies
* @param array|null $env
@ -91,7 +94,7 @@ function saisies_verifier_afficher_si($saisies, $env = null) {
function saisies_set_request_null_recursivement($saisie) {
// Attention, tout champ peut être un sous-tableau !
saisies_set_request($saisie['options']['nom'], null);
if (isset($saisie['saisies'])) {
foreach ($saisie['saisies'] as $sous_saisie) {
saisies_set_request_null_recursivement($sous_saisie);
@ -115,7 +118,7 @@ function saisies_afficher_si_get_valeur_champ($champ, $env, $saisies_par_nom) {
$config = saisies_afficher_si_get_valeur_config($champ);
$fichiers = false;
$est_tabulaire = false;
if (isset($saisies_par_nom[$champ])) {
$fichiers = $saisies_par_nom[$champ]['saisie'] == 'fichiers';
$est_tabulaire = saisies_saisie_est_tabulaire($saisies_par_nom[$champ]);
@ -158,7 +161,7 @@ function saisies_afficher_si_get_valeur_champ($champ, $env, $saisies_par_nom) {
$valeur = array_merge($files, $precedent);
$valeur = array_filter($valeur);
}
// On teste si on doit forcer que ce soit un tableau, suivant le type de la saisie
if ($est_tabulaire) {
$data = null;
@ -169,7 +172,7 @@ function saisies_afficher_si_get_valeur_champ($champ, $env, $saisies_par_nom) {
}
$valeur = saisies_valeur2tableau($valeur, $data);
}
return $valeur;
}
@ -194,21 +197,21 @@ function saisies_transformer_condition_afficher_si($condition, $env = null, $sai
spip_log("Afficher_si incorrect. $condition syntaxe_incorrecte", "saisies"._LOG_CRITIQUE);
return '';
}
foreach ($tests as $test) {
$expression = $test[0];
if (!isset($test['booleen'])) {
if (!$no_arobase) {
$champ = saisies_afficher_si_get_valeur_champ($test['champ'], $env, $saisies_par_nom);
} else {
$champ = $no_arobase;
}
$total = isset($test['total']) ? $test['total'] : '';
$operateur = isset($test['operateur']) ? $test['operateur'] : null;
$negation = isset($test['negation']) ? $test['negation'] : '';
if (isset($test['valeur_numerique'])) {
$valeur = intval($test['valeur_numerique']);
} elseif (isset($test['valeur'])) {
@ -216,7 +219,7 @@ function saisies_transformer_condition_afficher_si($condition, $env = null, $sai
} else {
$valeur = null;
}
$test_modifie = saisies_tester_condition_afficher_si($champ, $total, $operateur, $valeur, $negation) ? 'true' : 'false';
$condition = str_replace($expression, $test_modifie, $condition);
}
@ -227,7 +230,7 @@ function saisies_transformer_condition_afficher_si($condition, $env = null, $sai
return '';
}
}
return $condition;
}

Loading…
Cancel
Save