From 9532ff2547ff53e67f8ba1a1aefc24fbf90fd427 Mon Sep 17 00:00:00 2001 From: tofulm Date: Mon, 11 Apr 2022 14:41:16 +0200 Subject: [PATCH] =?UTF-8?q?on=20ajoute=20la=20possibilit=C3=A9=20de=20filt?= =?UTF-8?q?rer=20les=20valeurs=20dans=20le=20gamutable.=20Pour=20cela=20il?= =?UTF-8?q?=20faut=20declarer=20dans=20l'array=20Saisies=20le=20nom=20de?= =?UTF-8?q?=20la=20fonction=20dans=20l'a=20cl=C3=A9=20:=20"filtrer"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamuform_fonctions.php | 27 +++++++++++++++++++++++++++ json_gamuform.json.html | 3 ++- paquet.xml | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/gamuform_fonctions.php b/gamuform_fonctions.php index 4fb6d10..d6b8fad 100644 --- a/gamuform_fonctions.php +++ b/gamuform_fonctions.php @@ -13,6 +13,33 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } +/** + * filtre generale qui appelle un filtre spécifique, déclaré dans l'array saisies avec la cle : filtrer + * + * @param String $objet + * @param String $champ + * @param String $valeur + * + * @return String valeur modifiée ou pas par le filtre + */ +function gamufiltre($objet, $champ, $valeur) { + if (gamuform_objet_autoriser($objet)) { + $T = gamuform_recup_saisies($objet); + if (!empty($T)) { + foreach ($T as $s) { + if ( + $s['options']['nom'] === $champ + and !empty($s['options']['filtrer']) + ) { + $filtre = $s['options']['filtrer']; + return $filtre($valeur) ?? ''; + } + } + } + } + return $valeur; +} + /** * recuperation du tableau des saisies d'un objet * dans : gamuform/mon_objet.php diff --git a/json_gamuform.json.html b/json_gamuform.json.html index 92632e0..2546f62 100644 --- a/json_gamuform.json.html +++ b/json_gamuform.json.html @@ -1,5 +1,6 @@ #HTTP_HEADER{Content-Type: application/json; charset=#CHARSET} + #SET{header,#ENV{objet}|gamuform_recup_champ} [{ "header":{ @@ -42,7 +43,7 @@ "id": #GET{ligne/id}, "edit": [(#GET{edit}|json_encode)], - [(#CLE|json_encode)] : [(#GET{ligne/#CLE}|json_encode)], + [(#CLE|json_encode)] : [(#ENV{objet}|gamufiltre{#CLE,#GET{ligne/#CLE}}|json_encode)], "sup": [(#GET{sup}|json_encode)] }, diff --git a/paquet.xml b/paquet.xml index f0519b6..f3c377d 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@