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