diff --git a/inc/bigform_traiter.php b/inc/bigform_traiter.php index ad4a318..008d479 100644 --- a/inc/bigform_traiter.php +++ b/inc/bigform_traiter.php @@ -11,7 +11,7 @@ if (!defined('_ECRIRE_INC_VERSION')){ * @param $mode * @return array tableau des id_document $Tid_doc */ -function inc_bigform_traiter_dist($id_objet,$objet = 'article',$mode='auto') { +function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode='auto') { include_spip('inc/joindre_document'); set_request('joindre_upload','ok'); @@ -27,12 +27,28 @@ function inc_bigform_traiter_dist($id_objet,$objet = 'article',$mode='auto') { $lesTitres[] = $html_titre[$index]; } + // en mode logoon, on va supprimer le (ou les) anciens logos. on récupère d'abord leurs id + if ($mode == 'logoon'){ + $T_docs_objet = sql_allfetsel('id_document','spip_documents_liens',"id_objet=".intval($id_objet)." AND objet='" . $objet . "'"); + } + $Tid_doc = []; if (is_array($files) and count($files)) { $ajouter_document = charger_fonction('ajouter_documents', 'action'); $Tid_doc = $ajouter_document('new', $files, $objet, $id_objet,$mode); } + // si tout s'est bien passé, on supprime le/les anciens logos + if ($mode == 'logoon'){ + foreach ($T_docs_objet as $i => $ligne) { + $id_doc = $ligne['id_document']; + if (sql_getfetsel('mode','spip_documents','id_document=' . intval($id_doc)) == 'logoon'){ + sql_delete('spip_documents', 'id_document='.intval($id_doc)); + sql_delete('spip_documents_liens', 'id_document='.intval($id_doc)); + } + } + } + if (!empty($html_titre) and count($Tid_doc)) { foreach ($Tid_doc as $i => $id_doc) { $titre = $lesTitres[$i];