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

petite optimisation

parent 312705a8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -238,84 +238,82 @@ function ajout_doc($orig, $source, $mode, $id_document) { ...@@ -238,84 +238,82 @@ function ajout_doc($orig, $source, $mode, $id_document) {
// Securite // Securite
// //
if (!verifier_action_auteur("ajout_doc", $hash, $hash_id_auteur)) if (!verifier_action_auteur("ajout_doc", $hash, $hash_id_auteur))
return ''; return;
if (ereg("\.([^.]+)$", $orig, $match)) {
$ext = corriger_extension(addslashes(strtolower($match[1])));
}
//
// Recopier le fichier
//
$dest_path = copier_document($ext,$orig, $source);
if (!$dest_path) {
return '';
}
$query = "SELECT * FROM spip_types_documents WHERE extension='$ext' AND upload='oui'"; // type de document inconnu ?
if ($mode == 'vignette') $query .= " AND inclus='image'"; if (!ereg("\.([^.]+)$", $orig, $match)) return;
if ($row = @spip_fetch_array(spip_query($query))) { $ext = corriger_extension(addslashes(strtolower($match[1])));
$id_type = $row['id_type']; $row = @spip_fetch_array(spip_query("SELECT * FROM spip_types_documents WHERE extension='$ext' AND upload='oui'" . (($mode != 'vignette') ? '' : " AND inclus='image'")));
$type_inclus = $row['inclus'];
// type de document invalide ?
if (!$row) return;
// Recopier le fichier
$dest_path = copier_document($ext,$orig, $source);
if (!$dest_path) return;
//
// Preparation // Preparation
//
if ($mode == 'vignette') { if ($mode == 'vignette') {
$id_document_lie = $id_document; $id_document_lie = $id_document;
$query = "UPDATE spip_documents SET mode='document' where id_document=$id_document_lie"; $query = "UPDATE spip_documents SET mode='document' where id_document=$id_document_lie";
spip_query($query); // requete inutile a mon avis (Fil)... spip_query($query); // requete inutile a mon avis (Fil)...
$id_document = 0; $id_document = 0;
} }
if (!$id_document) { if (!$id_document) {
$query = "INSERT INTO spip_documents (id_type, titre, date) VALUES ($id_type, '', NOW())"; $id_type = $row['id_type'];
spip_query($query); $query = "INSERT INTO spip_documents (id_type, titre, date) VALUES ($id_type, '', NOW())";
$id_document = spip_insert_id(); spip_query($query);
$nouveau = true; $id_document = spip_insert_id();
if ($id_article && isset($type)) { $nouveau = true;
$query = "INSERT INTO spip_documents_".$type."s (id_document, id_".$type.") VALUES ($id_document, $id_article)"; if ($id_article && isset($type)) {
spip_query($query); $query = "INSERT INTO spip_documents_".$type."s (id_document, id_".$type.") VALUES ($id_document, $id_article)";
} spip_query($query);
} }
}
// //
// Mettre a jour les infos du document uploade // Mettre a jour les infos du document uploade
// //
$size_image = @getimagesize($dest_path); $size_image = @getimagesize($dest_path);
$type_image = decoder_type_image($size_image[2]); $type_image = decoder_type_image($size_image[2]);
if ($type_image) { if ($type_image) {
$largeur = $size_image[0]; $largeur = $size_image[0];
$hauteur = $size_image[1]; $hauteur = $size_image[1];
} }
$taille = filesize($dest_path); $taille = filesize($dest_path);
if ($nouveau) { if ($nouveau) {
if (!$mode) $mode = ($type_image AND $type_inclus == 'image') ? 'vignette' : 'document'; $type_inclus = $row['inclus'];
$update = "mode='$mode', "; if (!$mode) $mode = ($type_image AND $type_inclus == 'image') ? 'vignette' : 'document';
} $update = "mode='$mode', ";
}
$query = "UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$dest_path' ". spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$dest_path' WHERE id_document=$id_document");
"WHERE id_document=$id_document";
spip_query($query);
if ($id_document_lie) {
$query = "UPDATE spip_documents SET id_vignette=$id_document WHERE id_document=$id_document_lie"; if ($id_document_lie) {
spip_query($query); $query = "UPDATE spip_documents SET id_vignette=$id_document WHERE id_document=$id_document_lie";
$id_document = $id_document_lie; // pour que le 'return' active le bon doc. spip_query($query);
} $id_document = $id_document_lie; // pour que le 'return' active le bon doc.
}
// Creer la vignette // Creer la vignette
if ($mode == 'document' AND lire_meta('creer_preview') == 'oui' if ($mode == 'document' AND lire_meta('creer_preview') == 'oui'
AND ereg(",$ext,", ','.lire_meta('formats_graphiques').',')) { AND ereg(",$ext,", ','.lire_meta('formats_graphiques').',')) {
include_ecrire('inc_logos.php3'); include_ecrire('inc_logos.php3');
$f = ereg_replace(".$ext$", '-s', basename($dest_path)); $f = ereg_replace(".$ext$", '-s', basename($dest_path));
$d = lire_meta('taille_preview'); $d = lire_meta('taille_preview');
creer_vignette($dest_path, $d, $d, 'jpg', 'vignettes', $f, 'AUTO', true); creer_vignette($dest_path, $d, $d, 'jpg', 'vignettes', $f, 'AUTO', true);
} }
}
} }
// //
// Faire tourner une image // Faire tourner une image
// //
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter