From bc252c347b377818a1016e899b724b068a1ae7e2 Mon Sep 17 00:00:00 2001
From: ARNO* <arno@rezo.net>
Date: Mon, 18 Oct 2004 19:26:37 +0000
Subject: [PATCH] Debuggage documents

---
 ecrire/inc_documents.php3 | 39 ++++++++++++++++++++++++---------------
 ecrire/inc_logos.php3     |  3 +--
 ecrire/inc_version.php3   | 18 +++++++++++++-----
 spip_image.php3           | 12 +++++-------
 spip_image_reduite.php3   |  3 ++-
 5 files changed, 45 insertions(+), 30 deletions(-)

diff --git a/ecrire/inc_documents.php3 b/ecrire/inc_documents.php3
index 43d83a20dd..9e86aa9499 100644
--- a/ecrire/inc_documents.php3
+++ b/ecrire/inc_documents.php3
@@ -39,16 +39,15 @@ function vignette_par_defaut($type_extension, $size=true) {
 
 
 function vignette_previsu_ou_par_defaut($fichier, $extension) {
-  // si pas de vignette, utiliser la vignette par defaut
-  // ou essayer de creer une previsu si permis
-  global $flag_ecrire;
-  $formats = ','.lire_meta('formats_graphiques').',';
-  if ((strpos($formats, ",$extension,") === false) || 
-      (lire_meta("creer_preview") != 'oui')) {
-    return vignette_par_defaut($extension ? $extension : 'txt', true);
-  } else {
-    return array(($flag_ecrire?'../':'').'spip_image.php3?vignette='.rawurlencode($fichier), 0, 0);
-  }
+	// si pas de vignette, utiliser la vignette par defaut
+	// ou essayer de creer une previsu si permis
+ 	 global $flag_ecrire;
+	$formats = ','.lire_meta('formats_graphiques').',';
+	if ((strpos($formats, ",$extension,") === false) || (lire_meta("creer_preview") != 'oui')) {
+		return vignette_par_defaut($extension ? $extension : 'txt', true);
+	} else {
+		return array(($flag_ecrire?'../':'').'spip_image.php3?vignette='.rawurlencode($fichier), 0, 0);
+	}
 }
 
 function document_et_vignette($url, $document) 
@@ -381,8 +380,9 @@ function texte_upload_manuel($dir, $inclus = '') {
 
 
 function texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_vignette, $fichier_document) {
+	global $connect_id_auteur;
 #  spip_log("texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_vignette, $fichier_document)");
-	if ($largeur_vignette > 120) {
+/*	if ($largeur_vignette > 120) {
 		$rapport = 120.0 / $largeur_vignette;
 		$largeur_vignette = 120;
 		$hauteur_vignette = ceil($hauteur_vignette * $rapport);
@@ -392,15 +392,25 @@ function texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_
 		$hauteur_vignette = 110;
 		$largeur_vignette = ceil($largeur_vignette * $rapport);
 	}
+*/
+	include_ecrire("inc_logos.php3");
+
+	$taille = image_ratio($largeur_vignette, $hauteur_vignette, 120, 110);
+	$w = $taille[0];
+	$h = $taille[1];
+	$hash = calculer_action_auteur ("reduire $w $h");
+	
+	$image = "<img src='../spip_image_reduite.php3?img=$fichier_vignette&taille_x=$w&taille_y=$h&hash=$hash&hash_id_auteur=$connect_id_auteur' width='$w' height='$h' />";
+	
 
 # ça ne marche pas toujours car fichier_vignette peut etre n'importe quoi
 #	$fid = "?date=".@filemtime($fichier_vignette);
 
 	if ($fichier_document)
-		return "<a href='$fichier_document'><img src='$fichier_vignette' border='0' height='$hauteur_vignette' width='$largeur_vignette' align='top' alt='' /></a>\n";
+		return "<a href='$fichier_document'>$image</a>\n";
 	else
-		return "<img src='$fichier_vignette' border='0' height='$hauteur_vignette' width='$largeur_vignette' align='top' alt='' />\n";
-}
+		return $image;
+}		
 
 
 //
@@ -540,7 +550,6 @@ function afficher_documents_non_inclus($id_article, $type = "article", $flag_mod
 			}
 						
 			if ($flag_modif) {
-			
 				if ($id_vignette == 0) {
 					echo "<div style='float: $spip_lang_left;'>";		
 					echo bouton_block_invisible("gerer_vignette$id_document");	
diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3
index 417a92afda..ac80479467 100644
--- a/ecrire/inc_logos.php3
+++ b/ecrire/inc_logos.php3
@@ -216,7 +216,7 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf
 			$vignette = $destination.'.'.$fmt;
 			if ($force) @unlink($vignette);
 		}
-
+		
 	// utiliser le cache ?
 	if ($force OR !$vignette OR (@filemtime($vignette) < @filemtime($image))) {
 
@@ -361,7 +361,6 @@ function inserer_vignette_base($image, $vignette) {
 
 	$taille = @filesize($vignette);
 	
-	
 	$size = @getimagesize($vignette);
 	$largeur = $size[0];
 	$hauteur = $size[1];
diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3
index 3c6d0da2d6..5fb3b1dbc8 100644
--- a/ecrire/inc_version.php3
+++ b/ecrire/inc_version.php3
@@ -1085,13 +1085,21 @@ function calcule_fichier_logo($on) {
 
 function cherche_image_nommee($nom, $formats = array ('gif', 'jpg', 'png')) {
 	if (ereg("^../",$nom))	$nom = substr($nom,3);
-	if (ereg("^" . _DIR_IMG, $nom)) $nom = substr($nom,strlen(_DIR_IMG));
-	
+	if (ereg("^" . _DIR_IMG, $nom)) {
+		$nom = substr($nom,strlen(_DIR_IMG));
+	}
+	$pos = strrpos($nom, "/");
+	if ($pos > 0) {
+		$chemin = substr($nom, 0, $pos+1);
+		$nom = substr($nom, $pos+1);
+	} else {
+		$chemin = "";
+	}
+
 	reset($formats);
-	
 	while (list(, $format) = each($formats)) {
-		$d = _DIR_IMG . "$nom.$format";
-		if (@file_exists($d)) return array(_DIR_IMG, $nom, $format);
+		$d = _DIR_IMG . "$chemin$nom.$format";
+		if (@file_exists($d)) return array(_DIR_IMG."$chemin", $nom, $format);
 	}
 }
 
diff --git a/spip_image.php3 b/spip_image.php3
index f696182f3e..1d4c2ed576 100644
--- a/spip_image.php3
+++ b/spip_image.php3
@@ -228,7 +228,6 @@ function ajout_image($source, $dest) {
 
 function ajout_doc($orig, $source, $mode, $id_document) {
 	global $hash_id_auteur, $hash, $id_article, $type;
-
 	//
 	// Securite
 	//
@@ -252,7 +251,6 @@ function ajout_doc($orig, $source, $mode, $id_document) {
 	if (!$dest_path) return;
 
 	// Preparation
-
 	if ($mode == 'vignette') {
 		$id_document_lie = $id_document;
 		$query = "UPDATE spip_documents SET mode='document' where id_document=$id_document_lie";
@@ -270,7 +268,6 @@ function ajout_doc($orig, $source, $mode, $id_document) {
 			spip_query($query);
 		}
 	}
-
 	//
 	// Mettre a jour les infos du document uploade
 	//
@@ -371,15 +368,16 @@ function gdRotate($imagePath,$rtt){
 // Normalement le test est vérifié donc on ne rend rien sinon
 
 function creer_fichier_vignette($vignette) {
-  spip_log("creer_fich $vignette " . lire_meta("creer_preview"));
+	spip_log("creer_fich $vignette " . lire_meta("creer_preview"));
 	if ($vignette && lire_meta("creer_preview") == 'oui') {
 		eregi('\.([a-z0-9]+)$', $vignette, $regs);
 		$ext = $regs[1];
 		$taille_preview = lire_meta("taille_preview");
 		if ($taille_preview < 10) $taille_preview = 120;
 		include_ecrire('inc_logos.php3');
-		if ($preview = creer_vignette($vignette, $taille_preview, $taille_preview, $ext, '', basename($vignette).'-s'))
+		if ($preview = creer_vignette($vignette, $taille_preview, $taille_preview, $ext, 'vignettes', basename($vignette).'-s'))
 		{
+		
 			inserer_vignette_base($vignette, $preview['fichier']);
 			return $preview['fichier'];
         }
@@ -552,8 +550,8 @@ function afficher_compactes($image_name) {
 
 if ($ajout_doc == 'oui') {
 
-// image_name n'est valide que par POST http, mais pas par la methode ftp/upload
-// par ailleurs, pour un fichier ftp/upload, il faut effacer l'original nous-memes
+	// image_name n'est valide que par POST http, mais pas par la methode ftp/upload
+	// par ailleurs, pour un fichier ftp/upload, il faut effacer l'original nous-memes
 	if (!$image_name AND $image2) {
 		$image = "ecrire/upload/".$image2;
 		$image_name = $image;
diff --git a/spip_image_reduite.php3 b/spip_image_reduite.php3
index 66a2ab362e..273c33c880 100644
--- a/spip_image_reduite.php3
+++ b/spip_image_reduite.php3
@@ -12,8 +12,9 @@ if (eregi("(.*)\.(jpg|gif|png)$", $logo, $regs)) {
 	if ($i = cherche_image_nommee($regs[1], array($regs[2]))
 	    AND verifier_action_auteur("reduire $taille_x $taille_y", $hash, $hash_id_auteur))
 	{
-			list($dir,$nom,$format) = $i;
+		list($dir,$nom,$format) = $i;
 		$logo = $dir . $nom . '.' . $format;
+		
 		include_ecrire("inc_logos.php3");
 		$suffixe = '-'.$taille_x.'x'.$taille_y;
 		$preview = creer_vignette($logo, $taille_x, $taille_y, $format,('cache'.$suffixe), $nom.$suffixe);
-- 
GitLab