diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php index 7471961c25715fafb0f0f730cdadc13576d8d841..298f0d57ce42a95e142117df9f436abaed682c4e 100644 --- a/action/ajouter_documents.php +++ b/action/ajouter_documents.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2012 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -196,6 +196,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, // permettre aux plugins de faire des modifs a l'ajout initial // ex EXIF qui tourne les images si necessaire + // Ce plugin ferait quand même mieux de se placer dans metadata/jpg.php pipeline('post_edition', array( 'args' => array( diff --git a/action/editer_document.php b/action/editer_document.php index 3c5fd1c0d5695575598d81f30db6910d8c52738c..8ebe99634a71df4fdda12dd8301537e2032b7361 100644 --- a/action/editer_document.php +++ b/action/editer_document.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2012 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -85,13 +85,12 @@ function document_inserer() { function document_modifier($id_document, $set=false) { include_spip('inc/modifier'); + include_spip('inc/filtres'); + // champs normaux $champs = collecter_requests( // white list - array( - 'titre', 'descriptif', 'date', 'taille', 'largeur','hauteur','mode','credits', - 'fichier','distant','extension', 'id_vignette', 'media', - ), + objet_info('document','champs_editables'), // black list array('parents', 'ajout_parents'), // donnees eventuellement fournies diff --git a/base/medias.php b/base/medias.php index e8531bc62d2216cf1fca6056a79a2cb28f6673bc..92ab80afb29353f18b7c03828a6b3110af257584 100644 --- a/base/medias.php +++ b/base/medias.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2012 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -109,7 +109,7 @@ function medias_declarer_tables_objets_sql($tables){ $tables['spip_articles']['champs_versionnes'][] = 'jointure_documents'; $tables['spip_documents'] = array( 'table_objet_surnoms'=>array('doc','img','emb'), - 'type_surnoms' => array(), + 'type_surnoms' => array(), 'url_voir' => 'document_edit', 'url_edit' => 'document_edit', 'page'=>'', @@ -166,6 +166,7 @@ function medias_declarer_tables_objets_sql($tables){ 'rechercher_champs' => array( 'titre' => 3, 'descriptif' => 1, 'fichier' => 1, 'credits' => 1, ), + 'champs_editables' => array('titre', 'descriptif', 'date', 'taille', 'largeur','hauteur','mode','credits','fichier','distant','extension', 'id_vignette', 'media'), 'champs_versionnes' => array('id_vignette', 'titre', 'descriptif', 'hauteur', 'largeur', 'mode','distant'), 'modeles' => array('document','doc','img','emb','image','video','text','audio','application'), ); @@ -276,4 +277,4 @@ function medias_optimiser_base_disparus($flux){ return $flux; } -?> +?> \ No newline at end of file diff --git a/inc/renseigner_document.php b/inc/renseigner_document.php index 343afe91d8f8e9a9b89186d535e360cb98342967..6d3312982244703c5f8fea9995a0c8fd3e2d8abc 100644 --- a/inc/renseigner_document.php +++ b/inc/renseigner_document.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2012 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -69,11 +69,11 @@ function renseigner_taille_dimension_image($fichier,$ext){ // Quelques infos sur le fichier if ( - !$fichier - OR !@file_exists($fichier) - OR !$infos['taille'] = @intval(filesize($fichier))) { - spip_log ("Echec copie du fichier $fichier"); - return _T('medias:erreur_copie_fichier',array('nom'=> $fichier)); + !$fichier + OR !@file_exists($fichier) + OR !$infos['taille'] = @intval(filesize($fichier))) { + spip_log ("Echec copie du fichier $fichier"); + return _T('medias:erreur_copie_fichier',array('nom'=> $fichier)); } // chercher une fonction de description @@ -81,15 +81,17 @@ function renseigner_taille_dimension_image($fichier,$ext){ if ($metadata = charger_fonction($ext,"metadata",true)){ $meta = $metadata($fichier); } - else { - $media = sql_getfetsel('media_defaut','spip_types_documents','extension='.sql_quote($ext)); - if ($metadata = charger_fonction($media,"metadata",true)){ - $meta = $metadata($fichier); - } - } - foreach($meta as $m=>$v) - if (in_array($m,array('largeur','hauteur','type_image'/*,'duree'*/))) - $infos[$m] = $v; + else { + $media = sql_getfetsel('media_defaut','spip_types_documents','extension='.sql_quote($ext)); + if ($metadata = charger_fonction($media,"metadata",true)){ + $meta = $metadata($fichier); + } + } + + include_spip('inc/filtres'); # pour objet_info() + foreach($meta as $m=>$v) + if (in_array($m,objet_info('document','champs_editables'))) + $infos[$m] = $v; return $infos; } diff --git a/paquet.xml b/paquet.xml index ca85fd80d4a983761a64a5b1688c7f5900dcd0a7..5007118ae4976f00c5b69491142528d64b7045a7 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="medias" categorie="multimedia" - version="2.7.29" + version="2.7.30" etat="stable" compatibilite="[3.0.0;3.1.*]" logo="prive/themes/spip/images/portfolio-32.png"