From 2bdd771a70a56395debdf926573a513400f835f2 Mon Sep 17 00:00:00 2001 From: engel <> Date: Tue, 29 Mar 2022 12:49:03 +0000 Subject: [PATCH] =?UTF-8?q?am=C3=A9lioration=20gestion=20champs=20nom?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: 23841b8b267a439702b01a11c2066c9be6469638b660b334c28d695f2c149f83 --- lib/Utils.php | 50 +++++++++++++++++++++++++++++++++++++++++++- templates/config.tpl | 4 ++-- www/admin/config.php | 33 ++++++++--------------------- 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/lib/Utils.php b/lib/Utils.php index c9f6121..d2c3400 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -299,7 +299,8 @@ class Utils /** * @return liste des années fiscales */ - public static function getAnneesFiscales() { + public static function getAnneesFiscales() : array + { $rows = DB::getInstance()->get( "SELECT strftime('%Y', start_date) as annee FROM acc_years @@ -312,6 +313,53 @@ class Utils return $anneesFiscales; } + /** + * récupérer dans la config du plugin les champs des membres + * utilisés pour le nom et le prénom ; ajouter/supprimer les + * modifications par rapport à la config garradin + * @return tableau des champs : clé = nom, valeur = { titre, position } + */ + public static function getChampsNom($config, $plugin) : array + { + // récupérer dans la config du plugin les champs mémorisés + // pour le nom et le prénom (le tableau est vide si pas mémorisé) + $champsNom = (array) $plugin->getConfig('champsNom'); + + // récupérer dans la config Garradin les champs des membres + // utilisés pour le nom et le préno + $champsGarradin = $config->get('champs_membres')->listAssocNames(); + + foreach ($champsGarradin as $name => $title) + { + if (stristr($title, 'nom')) + { + // retenir les champs dont le titre contient le terme 'nom' + // est-il présent dans la config du plugin ? + if (! array_key_exists($name, $champsNom)) + { + // absent => l'ajouter + $champ = new \stdClass(); + $champ->titre = $title; + $champ->position = 0; + $champsNom[$name] = $champ; + } + } + } + // opération symétrique : un champ mémorisé dans la config du + // plugin a-t-il disparu de la config garradin ? + foreach ($champsNom as $nom => $champ) + { + if (! array_key_exists($nom, $champsGarradin)) + { + // absent => le supprimer + unset($champsNom[$nom]); + } + } + // mettre à jour la config du plugin + $plugin->setConfig('champsNom', $champsNom); + return $champsNom; + } + /** * enregistrer les fichiers dans une archive zip * @param $fileList : liste des fichiers à archiver diff --git a/templates/config.tpl b/templates/config.tpl index f106aeb..f7433f1 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -85,13 +85,13 @@ {* les champs de nom *} - +
Sélectionnez et classez le(s) champ(s) qui représente(nt) le nom et le prénom du donateur