Feat : ajout d'un argument id_document dans les options possibles de l'appel du formulaire bigform qui permet de faire la mise à jour du fichier de ce document à la place d'en créer un nouveau

This commit is contained in:
cy_altern 2024-08-08 17:30:18 +02:00
parent 40d61b2988
commit b2232a9323
2 changed files with 23 additions and 13 deletions

View file

@ -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 = []) { function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) {
$options_secu = []; $options = [];
if (array_key_exists('proteger', $args)) { if (array_key_exists('proteger', $args)) {
$options_secu['proteger'] = true; $options['proteger'] = true;
} }
if (array_key_exists('obfusquer', $args)) { 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'); $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', [ pipeline('bigform_post_insertion', [
'args' => [ 'args' => [

View file

@ -10,24 +10,31 @@ if (!defined('_ECRIRE_INC_VERSION')){
* @param $id_objet * @param $id_objet
* @param $objet * @param $objet
* @param $mode * @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 * @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/joindre_document');
include_spip('inc/autoriser'); include_spip('inc/autoriser');
$proteger = false; $proteger = false;
$obfusquer = false; $obfusquer = false;
if (is_array($options_secu)) { $id_document = 'new';
if (array_key_exists('proteger', $options_secu)) { if (is_array($options)) {
$proteger = $options_secu['proteger']; if (array_key_exists('proteger', $options)) {
$proteger = $options['proteger'];
} }
if (array_key_exists('obfusquer', $options_secu)) { if (array_key_exists('obfusquer', $options)) {
$obfusquer = $options_secu['obfusquer']; $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 { } else {
if ($options_secu) { if ($options) {
$proteger = true; $proteger = true;
} }
} }
@ -81,7 +88,7 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
$autorisation_temp = true; $autorisation_temp = true;
} }
$ajouter_document = charger_fonction('ajouter_documents', 'action'); $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) { if ($autorisation_temp) {
autoriser_exception('associerdocuments', $type, $id_objet, false); autoriser_exception('associerdocuments', $type, $id_objet, false);
} }