From 59da9492a02f12e38998ef5a9d91bb565526db9c Mon Sep 17 00:00:00 2001
From: b_b <bruno@eliaz.fr>
Date: Fri, 17 Dec 2021 19:30:42 +0100
Subject: [PATCH] =?UTF-8?q?d=C3=A9placer=20corriger=5Fextension()=20du=20p?=
 =?UTF-8?q?lugin=20medias=20vers=20inc/documents=20du=20core?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ref spip/medias#4853
---
 ecrire/inc/distant.php                        |  2 +-
 ecrire/inc/documents.php                      | 36 +++++++++++++++++++
 .../configurer_ecran_connexion.php            |  2 +-
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php
index 559aac2c6d..a5a6fd18f8 100644
--- a/ecrire/inc/distant.php
+++ b/ecrire/inc/distant.php
@@ -1055,7 +1055,7 @@ function distant_trouver_extension_selon_headers($source, $headers) {
 	}
 
 	// pour corriger_extension()
-	include_spip('action/ajouter_documents');
+	include_spip('inc/documents');
 
 	// Si on a un mime-type insignifiant
 	// text/plain,application/octet-stream ou vide
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index ad4a9ea652..07635ce359 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -337,3 +337,39 @@ function check_upload_error($error, $msg = '', $return = false) {
 	);
 	exit;
 }
+
+/**
+ * Corrige l'extension du fichier dans quelques cas particuliers
+ *
+ * @note
+ *     Une extension 'pdf ' passe dans la requête de contrôle
+ *     mysql> SELECT * FROM spip_types_documents WHERE extension="pdf ";
+ *
+ * @todo
+ *     À passer dans base/typedoc
+ *
+ * @param string $ext
+ * @return string
+ */
+function corriger_extension($ext) {
+	$ext = preg_replace(',[^a-z0-9],i', '', $ext);
+	switch ($ext) {
+		case 'htm':
+			$ext = 'html';
+			break;
+		case 'jpeg':
+			$ext = 'jpg';
+			break;
+		case 'tiff':
+			$ext = 'tif';
+			break;
+		case 'aif':
+			$ext = 'aiff';
+			break;
+		case 'mpeg':
+			$ext = 'mpg';
+			break;
+	}
+
+	return $ext;
+}
\ No newline at end of file
diff --git a/prive/formulaires/configurer_ecran_connexion.php b/prive/formulaires/configurer_ecran_connexion.php
index fd38799cd0..8ba1d0ae27 100644
--- a/prive/formulaires/configurer_ecran_connexion.php
+++ b/prive/formulaires/configurer_ecran_connexion.php
@@ -40,7 +40,7 @@ function formulaires_configurer_ecran_connexion_verifier_dist() {
 
 	elseif (!empty($_FILES['upload_image_fond_login'])) {
 		$file = $_FILES['upload_image_fond_login'];
-		include_spip('action/ajouter_documents');
+		include_spip('inc/documents');
 		$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
 		$extension = corriger_extension(strtolower($extension));
 		if (!in_array($extension, ['jpg'])) {
-- 
GitLab