From 3e53f194532c682dc22f95b576fefa0e77536319 Mon Sep 17 00:00:00 2001 From: engel <> Date: Fri, 25 Mar 2022 19:28:57 +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: 2e194af9739c1603c6471619fe3b9720beb014d8d11442d01a42fc722ca9e790 --- garradin_plugin.ini | 2 +- lib/Utils.php | 47 ++++++++++++++++++++++++++++++ templates/config.tpl | 4 +-- upgrade.php | 13 +++++---- www/admin/config.php | 32 +++++--------------- www/admin/index.php | 4 +-- www/admin/versements_activites.php | 6 ++-- www/admin/versements_personnes.php | 2 +- 8 files changed, 72 insertions(+), 38 deletions(-) diff --git a/garradin_plugin.ini b/garradin_plugin.ini index 3193717..8e00b99 100644 --- a/garradin_plugin.ini +++ b/garradin_plugin.ini @@ -2,7 +2,7 @@ nom="Reçus fiscaux" description="Génération de reçus fiscaux pour les dons des membres" auteur="jce" url="https://git.roflcopter.fr/lesanges/recus-fiscaux-garradin" -version="0.6" +version="0.6.2" menu=1 config=1 min_version="1.1" diff --git a/lib/Utils.php b/lib/Utils.php index f6bed5b..22e74d0 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -257,6 +257,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 term '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