diff --git a/.gitattributes b/.gitattributes index ef6d18037836a3fb4f91832fcbec2a8ba7551911..96d2cd57df1005d35fbbfb6cf594e473d089d57e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -59,6 +59,7 @@ inc/getdocument.php -text inc/joindre_document.php -text inc/marquer_doublons_doc.php -text inc/renseigner_document.php -text +inc/verifier_document_mode_vignette.php -text inc/vignette.php -text javascript/jquery.MultiFile.js -text javascript/medias_edit.js -text diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php index 4b01e12fef59fbc082e33569b70c423f1ecbabc7..1fc398dd3af12bb2b8d4b73501d18eb8ff5082b6 100644 --- a/action/ajouter_documents.php +++ b/action/ajouter_documents.php @@ -91,7 +91,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, $mode = ((isset($file['mode']) AND $file['mode'])?$file['mode']:$mode); include_spip('inc/modifier'); - if (isset($file['distant']) AND $file['distant'] AND $mode=='vignette') { + if (isset($file['distant']) AND $file['distant'] AND !in_array($mode,array('choix','auto','image','document'))) { include_spip('inc/distant'); $file['tmp_name'] = _DIR_RACINE . copie_locale($source); $source = $file['tmp_name']; @@ -146,7 +146,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, $champs = array_merge($champs,$infos); // Si mode == 'choix', fixer le mode image/document - if ($mode == 'choix' OR !in_array($mode, array('vignette', 'image', 'document'))) { + if (in_array($mode,array('choix','auto'))) { $choisir_mode_document = charger_fonction('choisir_mode_document','inc'); $mode = $choisir_mode_document($champs, $champs['inclus'] == 'image', $objet); } @@ -179,7 +179,6 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, include_spip('action/editer_document'); // Installer le document dans la base - // attention piege semantique : les images s'installent en mode 'vignette' if (!$id_document){ $id_document = insert_document(); spip_log ("ajout du document ".$file['tmp_name']." ".$file['name']." (M '$mode' T '$objet' L '$id_objet' D '$id_document')"); @@ -360,15 +359,10 @@ function verifier_taille_document_acceptable($infos){ 'hauteur_vignette' => $infos['hauteur'])) )); } - - // Si on veut uploader une vignette, il faut qu'elle ait ete bien lue - if ($infos['mode'] == 'vignette') { - if ($infos['inclus'] != 'image') - return _T('medias:erreur_format_fichier_image',array('nom'=> $infos['fichier'])); #SVG - if (!($infos['largeur'] OR $infos['hauteur'])) - return _T('medias:erreur_upload_vignette',array('nom'=>$infos['fichier'])); - } + // verifier en fonction du mode si une fonction est proposee + if ($verifier_document_mode = charger_fonction("verifier_document_mode_".$infos['mode'],"inc",true)) + return $verifier_document_mode($infos); return true; } diff --git a/inc/verifier_document_mode_vignette.php b/inc/verifier_document_mode_vignette.php new file mode 100644 index 0000000000000000000000000000000000000000..8317652844225c3f1195d44b09a7ecde828b3572 --- /dev/null +++ b/inc/verifier_document_mode_vignette.php @@ -0,0 +1,24 @@ +<?php +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +function inc_verifier_document_mode_vignette_dist($infos){ + + // Si on veut uploader une vignette, il faut qu'elle ait ete bien lue + if ($infos['inclus'] != 'image') + return _T('medias:erreur_format_fichier_image',array('nom'=> $infos['fichier'])); #SVG + + if (!($infos['largeur'] OR $infos['hauteur'])) + return _T('medias:erreur_upload_vignette',array('nom'=>$infos['fichier'])); + + return true; +} \ No newline at end of file diff --git a/plugin.xml b/plugin.xml index 82ca0d92619e1fd060851e81ad9c5a5e07a21ae6..40d3ac89616a99384b2f3a38b19642724da4621b 100644 --- a/plugin.xml +++ b/plugin.xml @@ -2,7 +2,7 @@ <nom>Medias</nom> <auteur>Collectif SPIP, Cedric Morin & Romy Duhem-Verdiere pour la mediatheque</auteur> <icon>images/portfolio-64.png</icon> - <version>1.6.0</version> + <version>2.0.0</version> <version_base>0.11.0</version_base> <etat>dev</etat> <description>Gestion des medias de SPIP</description>