Browse Source

Suite discussion IRC + écrit où @rastapopoulos et moi même nous sommes

dit mututellement "mais c'est exactement ce que je dis" sur #92, nous
avons optés pour la simplicité.

A savoir : si une saisie est masquées par afficher_si, elle n'est jamais
vérifiée. Nulle part. Même si elle a un `afficher_si_avec_post`. Dans ce
cas là tant pis
  1. La vérification aura lieu si jamais, finalement, la condition
  d'affichage change
  2. C'est à la personne qui utiliser `afficher_si_avec_post` d'utiliser
  la valeur de la saisie conditionnée en tout intelligence, en ayant vérifié au préalable la conditon
  d'affichage

En soit c'est 2 lignes à implémenter ce changement. Par contre cela veut
dire aussi qu'on met aussi en mémoire dans
`saisies_afficher_si_liste_masquees()` les saisies masquées mais qui ont
un `afficher_si_avec_poste`. Ce qui est parfaitement cohérent avec son
titre.

Mais du coup formidable à besoin d'une nouvelle fonction pour connaitre
non pas _quelles saisies ont été masquées_ mais
_quelles saisies ont mises a chaine vide_.

Du coup on implemente une fonction `saisies_liste_set_request()` qui comme son nom l'indique permet d'avoir pour tous les champs qui passent par `saisies_set_request()` l'historique des modification de valeur.

Up de z + Fix #92
pull/94/head v3.51.6
Maïeul 2 years ago
parent
commit
98374a9376
  1. 9
      inc/saisies_afficher_si_php.php
  2. 23
      inc/saisies_request.php
  3. 2
      paquet.xml

9
inc/saisies_afficher_si_php.php

@ -57,8 +57,6 @@ function saisies_verifier_afficher_si($saisies, $env = null, $saisies_toutes_par
foreach ($saisies as $cle => $saisie) {
if (
isset($saisie['options']['afficher_si'])
and empty($saisies['options']['poster_afficher_si']) // option globale
and empty($saisie['options']['afficher_si_avec_post']) // option de la saisie
) {
$condition = $saisie['options']['afficher_si'];
// Est-ce uniquement au remplissage?
@ -80,7 +78,12 @@ function saisies_verifier_afficher_si($saisies, $env = null, $saisies_toutes_par
if ($saisie['saisie'] == 'explication') {//Une saisie explication masquée par afficher_si ne devrait rien retourner dans les syntaxe @truc@ dans formidable. Sans doute des choses à ameliorer pour que formidable ne soit pas obligé de faire un appel direct à saisies_verifier_afficher_si(). A voir lorsque la question se posera en pratique.
unset($saisies[$cle]);
} else {
saisies_set_request_recursivement($saisie, '');
if (
empty($saisies['options']['poster_afficher_si']) // option globale
and empty($saisie['options']['afficher_si_avec_post']) // option de la saisie
) {
saisies_set_request_recursivement($saisie, '');
}
}
}
}

23
inc/saisies_request.php

@ -140,14 +140,37 @@ function saisies_set_request($champ, $valeur) {
// Une fois descendu tout en bas, on met la valeur
$enfant = $valeur;
// Et on reinjecte le tout
saisies_liste_set_request('get', $nom_champ_principal, $champ_principal);
set_request($nom_champ_principal, $champ_principal);
}
// Sinon la valeur est juste celle du nom
else {
saisies_liste_set_request('get', $champ, $champ);
set_request($champ, $valeur);
}
}
/**
* Pour chaque champ, sauvegarde l'historique de ses valeurs avant que set_request
* Utilisé notamment par formidable pour trouver les saisies qui été mises à ''
* @param string $action 'set|get'
* @param string $champ
* @param string $nouvelle_valeur
* @return (si action = get) un tableau associatif
* - '<champ>' => ['valeur_initiale', 'valeur_modifiee1', 'valeur_modifiee2'
**/
function saisies_liste_set_request($action = 'set', $champ = 'null', $nouvelle_valeur = '') {
static $cache = array();
if ($action === 'get') {
return $cache;
} else {
if (!isset($cache[$champ])) {
$cache[$champ] = saisies_request($champ);
}
$cache[$champ] = array_merge($cache[$champ], array($nouvelle_valeur));
}
}
/**
* Chercher la valeur d'une saisie, en tenant compte du fait que potentiellement c'est une saisies fichiers

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="saisies"
categorie="outil"
version="3.51.5"
version="3.51.6"
etat="stable"
compatibilite="[3.0.0;3.2.*]"
logo="prive/themes/spip/images/saisies-48.png"

Loading…
Cancel
Save