From 30d14ec2cdc2f6d6a6d79197e0d77cfe9ef30efd Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 24 Sep 2007 14:22:05 +0000
Subject: [PATCH] =?UTF-8?q?Quand=20on=20envoie=20un=20document,=20d=C3=A9d?=
 =?UTF-8?q?uire=20un=20titre=20=C3=A0=20partir=20du=20nom=20du=20ficier.?=
 =?UTF-8?q?=20Surtout=20int=C3=A9ressant=20quand=20on=20d=C3=A9balle=20un?=
 =?UTF-8?q?=20Zip,=20=C3=A7a=20=C3=A9vite=20d'avoir=20la=20page=20de=20l'e?=
 =?UTF-8?q?space=20public=20contenant=20des=20dizaines=20de=20lignes=20ave?=
 =?UTF-8?q?c=20le=20m=C3=AAme=20'intitul=C3=A9=20'document'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/ajouter_documents.php | 13 ++++++++-----
 ecrire/inc/getdocument.php       |  3 +--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index f51aea2543..f142163370 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -49,7 +49,6 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 // Documents distants : pas trop de verifications bloquantes, mais un test
 // via une requete HEAD pour savoir si la ressource existe (non 404), si le
 // content-type est connu, et si possible recuperer la taille, voire plus.
-	spip_log ("ajout du document $source $nom_envoye  (M '$mode' T '$type_lien' L '$id_lien' D '$id_document')");
 	if ($mode == 'distant') {
 		include_spip('inc/distant');
 		if ($a = recuperer_infos_distantes($source)) {
@@ -74,13 +73,15 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 		}
 	} else {
 		$distant = 'non';
-		$type_image = $titre = ''; // au pire
-		// tester le type de document :
+		$type_image = ''; // au pire
+		// calculer le titrer tester le type de document :
 		// - interdit a l'upload ?
 		// - quelle extension dans spip_types_documents ?
 		// - est-ce "inclus" comme une image ?
-		preg_match(",\.([^.]+)$,", $nom_envoye, $match);
-		$ext = corriger_extension(strtolower($match[1]));
+		preg_match(",^(.*)\.([^.]+)$,", $nom_envoye, $match);
+		@list(,$titre,$ext) = $match;
+		$titre = preg_replace(',[[:punct:][:space:]]+,u', ' ', $titre);
+		$ext = corriger_extension(strtolower($ext));
 
 		// Si le fichier est de type inconnu, on va le stocker en .zip
 		$q = spip_query($p = "SELECT * FROM spip_types_documents WHERE extension=" . _q($ext) . " AND upload='oui'");
@@ -259,6 +260,8 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 	else
 		$documents_actifs[$fichier] = $id_document; 
 
+	spip_log ("ajout du document $source $nom_envoye  (M '$mode' T '$type_lien' L '$id_lien' D '$id_document')");
+
 	// Notifications, gestion des revisions, reindexation...
 	pipeline('post_edition',
 		array(
diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php
index 1af93b0c0a..59e7694193 100644
--- a/ecrire/inc/getdocument.php
+++ b/ecrire/inc/getdocument.php
@@ -175,8 +175,7 @@ function accepte_fichier_upload ($f) {
 	if (!preg_match(",.*__MACOSX/,", $f)
 	AND !preg_match(",^\.,", basename($f))) {
 		$ext = corriger_extension((strtolower(substr(strrchr($f, "."), 1))));
-		$row =  @sql_fetch(spip_query("SELECT extension FROM spip_types_documents WHERE extension=" . _q($ext) . " AND upload='oui'"));
-		return $row;
+		return sql_countsel('spip_types_documents', "extension=" . _q($ext) . " AND upload='oui'");
 	}
 }
 
-- 
GitLab