diff --git a/action/editer_document.php b/action/editer_document.php index eef646f81343dae257096a769b9e0c8b173462fa..18700982b9f50ef36656e35d6d168755881da8c1 100644 --- a/action/editer_document.php +++ b/action/editer_document.php @@ -77,21 +77,27 @@ function insert_document() { /** * Enregistre une revision de document. - * $c est un contenu (par defaut on prend le contenu via _request()) + * $set est un contenu (par defaut on prend le contenu via _request()) * * @param int $id_document - * @param array $c + * @param array $set */ -function document_set ($id_document, $c=false) { +function document_set ($id_document, $set=false) { + include_spip('inc/modifier'); // champs normaux - $champs = array(); - foreach (array( - 'titre', 'descriptif', 'date', 'taille', 'largeur','hauteur','mode','credits', - 'fichier','distant','extension', 'id_vignette', - ) as $champ) - if (($a = _request($champ,$c)) !== null) - $champs[$champ] = $a; + $champs = collecter_requests( + // white list + array( + 'titre', 'descriptif', 'date', 'taille', 'largeur','hauteur','mode','credits', + 'fichier','distant','extension', 'id_vignette', + ), + // black list + array('parents', 'ajout_parents'), + // donnees eventuellement fournies + $set + ); + // Si le document est publie, invalider les caches et demander sa reindexation $t = sql_getfetsel("statut", "spip_documents", 'id_document='.intval($id_document)); @@ -106,7 +112,6 @@ function document_set ($id_document, $c=false) { $ancien_fichier = sql_getfetsel('fichier','spip_documents','id_document='.intval($id_document)); } - include_spip('inc/modifier'); modifier_contenu('document', $id_document, array( 'invalideur' => $invalideur, @@ -123,7 +128,8 @@ function document_set ($id_document, $c=false) { // Changer le statut du document ? // le statut n'est jamais fixe manuellement mais decoule de celui des objets lies - if(instituer_document($id_document,array('parents'=>_request('parents',$c),'ajout_parents'=>_request('ajout_parents',$c)))) { + $champs = collecter_requests(array('parents','ajouts_parents'),array(),$set); + if(instituer_document($id_document,$champs)) { // // Post-modifications