From b2232a9323d5e50eca8ae3c0308099c056065613 Mon Sep 17 00:00:00 2001 From: cy_altern Date: Thu, 8 Aug 2024 17:30:18 +0200 Subject: [PATCH] =?UTF-8?q?Feat=20:=20ajout=20d'un=20argument=20id=5Fdocum?= =?UTF-8?q?ent=20dans=20les=20options=20possibles=20de=20l'appel=20du=20fo?= =?UTF-8?q?rmulaire=20bigform=20qui=20permet=20de=20faire=20la=20mise=20?= =?UTF-8?q?=C3=A0=20jour=20du=20fichier=20de=20ce=20document=20=C3=A0=20la?= =?UTF-8?q?=20place=20d'en=20cr=C3=A9er=20un=20nouveau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/bigform.php | 11 +++++++---- inc/bigform_traiter.php | 25 ++++++++++++++++--------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/formulaires/bigform.php b/formulaires/bigform.php index c595adf..bb5efeb 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -53,16 +53,19 @@ function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $a function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) { - $options_secu = []; + $options = []; if (array_key_exists('proteger', $args)) { - $options_secu['proteger'] = true; + $options['proteger'] = true; } if (array_key_exists('obfusquer', $args)) { - $options_secu['obfusquer'] = true; + $options['obfusquer'] = true; + } + if (array_key_exists('id_document', $args) && intval($args['id_document'])) { + $options['id_document'] = intval($args['id_document']); } $bigform = charger_fonction('bigform_traiter','inc'); - $T = $bigform($id_objet,$objet,$mode, $options_secu); + $T = $bigform($id_objet,$objet,$mode, $options); pipeline('bigform_post_insertion', [ 'args' => [ diff --git a/inc/bigform_traiter.php b/inc/bigform_traiter.php index 1af0588..3657496 100644 --- a/inc/bigform_traiter.php +++ b/inc/bigform_traiter.php @@ -10,24 +10,31 @@ if (!defined('_ECRIRE_INC_VERSION')){ * @param $id_objet * @param $objet * @param $mode - * @param array $options_secu['secu' => false, 'obfusquer' => false;] + * @param array $options['secu' => false, 'obfusquer' => false, 'id_document' => ID du document pour lequel on va remplacer le fichier] * @return array tableau des id_document $Tid_doc */ -function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $options_secu = false) { +function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $options = false) { include_spip('inc/joindre_document'); include_spip('inc/autoriser'); $proteger = false; $obfusquer = false; - if (is_array($options_secu)) { - if (array_key_exists('proteger', $options_secu)) { - $proteger = $options_secu['proteger']; + $id_document = 'new'; + if (is_array($options)) { + if (array_key_exists('proteger', $options)) { + $proteger = $options['proteger']; } - if (array_key_exists('obfusquer', $options_secu)) { - $obfusquer = $options_secu['obfusquer']; + if (array_key_exists('obfusquer', $options)) { + $obfusquer = $options['obfusquer']; + } + if (array_key_exists('id_document', $options) + && $options['id_document'] == intval($options['id_document']) + && intval($options['id_document']) + ) { + $id_document = $options['id_document']; } } else { - if ($options_secu) { + if ($options) { $proteger = true; } } @@ -81,7 +88,7 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $autorisation_temp = true; } $ajouter_document = charger_fonction('ajouter_documents', 'action'); - $Tid_doc = $ajouter_document('new', $files, $objet, $id_objet, $mode); + $Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode); if ($autorisation_temp) { autoriser_exception('associerdocuments', $type, $id_objet, false); }