Skip to content
Extraits de code Groupes Projets
Valider 30d14ec2 rédigé par esj's avatar esj
Parcourir les fichiers

Quand on envoie un document, déduire un titre à partir du nom du ficier....

Quand on envoie un document, déduire un titre à partir du nom du ficier. Surtout intéressant quand on déballe un Zip, ça évite d'avoir la page de l'espace public contenant des dizaines de lignes avec le même 'intitulé 'document'
parent 85139994
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -49,7 +49,6 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode, ...@@ -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 // Documents distants : pas trop de verifications bloquantes, mais un test
// via une requete HEAD pour savoir si la ressource existe (non 404), si le // 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. // 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') { if ($mode == 'distant') {
include_spip('inc/distant'); include_spip('inc/distant');
if ($a = recuperer_infos_distantes($source)) { if ($a = recuperer_infos_distantes($source)) {
...@@ -74,13 +73,15 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode, ...@@ -74,13 +73,15 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
} }
} else { } else {
$distant = 'non'; $distant = 'non';
$type_image = $titre = ''; // au pire $type_image = ''; // au pire
// tester le type de document : // calculer le titrer tester le type de document :
// - interdit a l'upload ? // - interdit a l'upload ?
// - quelle extension dans spip_types_documents ? // - quelle extension dans spip_types_documents ?
// - est-ce "inclus" comme une image ? // - est-ce "inclus" comme une image ?
preg_match(",\.([^.]+)$,", $nom_envoye, $match); preg_match(",^(.*)\.([^.]+)$,", $nom_envoye, $match);
$ext = corriger_extension(strtolower($match[1])); @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 // 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'"); $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, ...@@ -259,6 +260,8 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
else else
$documents_actifs[$fichier] = $id_document; $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... // Notifications, gestion des revisions, reindexation...
pipeline('post_edition', pipeline('post_edition',
array( array(
......
...@@ -175,8 +175,7 @@ function accepte_fichier_upload ($f) { ...@@ -175,8 +175,7 @@ function accepte_fichier_upload ($f) {
if (!preg_match(",.*__MACOSX/,", $f) if (!preg_match(",.*__MACOSX/,", $f)
AND !preg_match(",^\.,", basename($f))) { AND !preg_match(",^\.,", basename($f))) {
$ext = corriger_extension((strtolower(substr(strrchr($f, "."), 1)))); $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 sql_countsel('spip_types_documents', "extension=" . _q($ext) . " AND upload='oui'");
return $row;
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter