diff --git a/dist/article.html b/dist/article.html index 2a0abf48d3dcce355bb98be415f0a3ada715958a..614edcff0980fdfa0aaf9ce854798a02b65b60e8 100644 --- a/dist/article.html +++ b/dist/article.html @@ -190,7 +190,7 @@ ]#FIN_SURLIGNE -<BOUCLE_afficher_document(DOCUMENTS){id_document}{mode=document}{fichier==(png|jpg|gif)$}{doublons}> +<BOUCLE_afficher_document(DOCUMENTS){id_document}{mode=document}{extension==(png|jpg|gif)$}{doublons}> [<h3 class="spip">(#TITRE)</h3>] [<div>(#DESCRIPTIF)</div>] @@ -199,9 +199,11 @@ <B_documents_portfolio> <div><hr> -<BOUCLE_documents_portfolio(DOCUMENTS){id_article}{mode=document}{fichier==(png|jpg|gif)$}{doublons}> +<BOUCLE_documents_portfolio(DOCUMENTS){id_article}{mode=document}{extension==(png|jpg|gif)$}{doublons}> <div style="float: left;"> - [<a href="#URL_ARTICLE[(#URL_ARTICLE|strpos{'?'}|?{'&','?'})]id_document=#ID_DOCUMENT">(#FICHIER|reduire_image{1000,52})</a>][<div><b>(#TITRE)</b></div>][<div>(#DESCRIPTIF)</div>] + + [<a href="#URL_ARTICLE[(#URL_ARTICLE|strpos{'?'}|?{'&','?'})]id_document=#ID_DOCUMENT">(#LOGO_DOCUMENT{500,60})</a>] +[<div><b>(#TITRE)</b></div>][<div>(#DESCRIPTIF)</div>] </div> </BOUCLE_documents_portfolio> </div> diff --git a/ecrire/inc_documents.php3 b/ecrire/inc_documents.php3 index 37cb54d35acfa657f4fd1cfdca4c8f2b8769ff5f..11b0a8696bdea9acedb9a35cce3c9264def0d51c 100644 --- a/ecrire/inc_documents.php3 +++ b/ecrire/inc_documents.php3 @@ -52,20 +52,30 @@ function vignette_par_defaut($type_extension, $size=true) { } -function document_et_vignette($url, $id_type) { - if ($id_type) { - list($extension) = spip_fetch_array(spip_query("SELECT extension FROM - spip_types_documents WHERE id_type=$id_type")); +// +// Affiche le document avec sa vignette par defaut, dans le portfolio +// Attention : si c'est un fichier graphique on prefere afficher une vue +// reduite, quand c'est possible (presque toujours, donc) +// +function document_et_vignette($document, $url) { + // a supprimer avec spip_types_documents + list($extension) = spip_fetch_array(spip_query("SELECT extension FROM + spip_types_documents WHERE id_type=".$document['id_type'])); + + if (strstr(lire_meta('formats_graphiques'), $extension) + AND lire_meta('creer_preview') == 'oui') { + $image = prive_lien_image_reduite ($document['largeur'], $document['hauteur'], $document['fichier']); } - list($fichier, $largeur, $hauteur) = - vignette_par_defaut($extension); + if (!$image) { + list($fichier, $largeur, $hauteur) = vignette_par_defaut($extension); + $image = "<a href='$url'><img src='$fichier' style='border-width: 0px' height='$hauteur' width='$largeur' /></a>"; + } - if (!$taille) - return "<a href='$url'><img src='$fichier' style='border-width: 0px' /></a>"; + if (!$url) + return $image; else - return "<a href='$url'><img src='$fichier' style='border-width: 0px' height='$taille' width='$taille' /></a>"; - + return "<a href='$url'>$image</a>"; } // @@ -358,17 +368,24 @@ function texte_upload_manuel($dir, $inclus = '') { } -function texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_vignette, $fichier_document) { +// +// Retourne le lien HTML vers l'image reduite (pour l'espace prive) +// +function prive_lien_image_reduite ($largeur_vignette, $hauteur_vignette, $fichier_vignette) { global $connect_id_auteur; include_ecrire("inc_logos.php3"); - $taille = image_ratio($largeur_vignette, $hauteur_vignette, 120, 110); - $w = $taille[0]; - $h = $taille[1]; + list($w,$h) = image_ratio($largeur_vignette, $hauteur_vignette, 120, 110); $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' style='border-width: 0px' />"; + return $image; +} + +function texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_vignette, $fichier_document) { + + $image = prive_lien_image_reduite ($largeur_vignette, $hauteur_vignette, $fichier_vignette); # Ca ne marche pas toujours car fichier_vignette peut etre n'importe quoi # $fid = "?date=".@filemtime($fichier_vignette); @@ -538,7 +555,7 @@ function afficher_portfolio ( if ($case == $bord_droit) $style .= " border-$spip_lang_right: 1px solid $couleur;"; echo "<td width='33%' style='text-align: $spip_lang_left; $style' valign='top'>"; - // Signaler les documents distants par une icone de site + // Signaler les documents distants par une icone de trombone if ($document['distant'] == 'oui') { echo "<img src='"._DIR_IMG_PACK.'attachment.gif'."' style='float: $spip_lang_right;' alt=\"".entites_html($document['fichier'])."\" title=\"" . entites_html($document['fichier'])."\" />\n"; @@ -562,9 +579,12 @@ entites_html($document['fichier'])."\" />\n"; } // bloc rotation de l'image + // si c'est une image, qu'on sait la faire tourner, qu'elle + // n'est pas distante, et qu'elle n'a pas de vignette perso ! if ($flag_modif AND strstr(lire_meta('formats_graphiques'), $document['extension']) - AND $document['distant']!='oui') { + AND $document['distant']!='oui' + AND !$id_vignette) { echo "<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>"; $process = lire_meta('image_process'); if ($process == 'imagick' OR $process == 'gd2' @@ -614,27 +634,13 @@ entites_html($document['fichier'])."\" />\n"; // // Recuperer la vignette et afficher le doc // - - if ($album == 'portfolio') { - // En mode portfolio, on ne travaille pas avec les vignettes - // (sinon, pas de squelette possible) - echo reduire_image_logo(_DIR_PREFIX1."$fichier", 120); - } else { - if ($id_vignette AND - $vignette = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = $id_vignette"))) { - $fichier_vignette = generer_url_document($id_vignette); - $largeur_vignette = $vignette['largeur']; - $hauteur_vignette = $vignette['hauteur']; - $taille_vignette = $vignette['taille']; - - echo texte_vignette_document($largeur_vignette, $hauteur_vignette, $fichier_vignette, $url); - } - else { - echo document_et_vignette($url, $document['id_type']); - } + if ($id_vignette + AND $vignette = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = $id_vignette"))) { + echo document_et_vignette($vignette, $url); + } + else { + echo document_et_vignette($document, $url); } - - echo "</div>"; // fin du bloc vignette + rotation @@ -730,13 +736,10 @@ entites_html($document['fichier'])."\" />\n"; echo "</form>"; - if ($album != 'portfolio') { - // bloc mettre a jour la vignette - // (pas de vignette en portfolio) - echo "<hr />"; - bloc_gerer_vignette($document, $image_url, $redirect_url, $album); - } - + // bloc mettre a jour la vignette + echo "<hr />"; + bloc_gerer_vignette($document, $image_url, $redirect_url, $album); + echo "</div>"; // bouton "supprimer le doc" @@ -801,6 +804,8 @@ function bloc_gerer_vignette($document, $image_url, $redirect_url, $album) { $link->getUrl(), "vignette-24.png", "supprimer.gif"); } else { +/**** + OBSOLETE // lien "creation automatique" if (strstr(lire_meta('formats_graphiques'), $document['extension']) AND lire_meta('creer_preview') == 'oui' @@ -818,6 +823,7 @@ function bloc_gerer_vignette($document, $image_url, $redirect_url, $album) { icone_horizontale(_T('info_creer_vignette'), $link->getUrl(), "vignette-24.png", "creer.gif"); } +*****/ // lien "upload vignette" $link = new Link ($image_url); @@ -829,7 +835,7 @@ function bloc_gerer_vignette($document, $image_url, $redirect_url, $album) { $link->addVar('ancre', $album); afficher_upload($link, $redirect_url.'&show_docs='.$id_document, - _T('info_remplacer_vignette'), 'portfolio', false); + /* _T('info_remplacer_vignette') */'', 'portfolio', false); } echo fin_block(); } diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index 535331a545af344405741016bb015770482b4eea..e4cf1fbbd86f7bde40f88f2c8854513660b21297 100644 --- a/ecrire/inc_filtres.php3 +++ b/ecrire/inc_filtres.php3 @@ -656,10 +656,13 @@ function extraire_fichier($img) { return $logo; } -function reduire_image($img, $taille = 120, $taille_y=0) { +function reduire_image($img, $taille = 0, $taille_y=0) { if (!$img) return; include_ecrire('inc_logos.php3'); - + + if (!$taille) + $taille = lire_meta('taille_preview'); + if (eregi("onmouseover=\"this\.firstChild\.src=\'([^']+)\'\"", $img, $match)) { $mouseover = extraire_fichier(reduire_image_logo($match[1], $taille, $taille_y)); } @@ -688,6 +691,32 @@ function hauteur($img) { return $h; } +// +// Cree au besoin la copie locale d'un fichier distant +// mode = 'test' - ne faire que tester +// mode = 'auto' - charger au besoin +// mode = 'force' - charger toujours (mettre a jour) +// +function copie_locale($source, $mode='auto') { + include_ecrire('inc_getdocument.php3'); + $local = fichier_copie_locale($source); + + if ($source != $local) { + if (($mode=='auto' AND !@file_exists($local)) + OR $mode=='force') { + include_ecrire('inc_sites.php3'); + $contenu = recuperer_page($source); + if ($contenu) + ecrire_fichier($local, $contenu); + else + return false; + } + } + + return $local; +} + + // // Recuperation de donnees dans le champ extra // Ce filtre n'a de sens qu'avec la balise #EXTRA diff --git a/ecrire/inc_getdocument.php3 b/ecrire/inc_getdocument.php3 index 857098fe4624a24437ca828960c229cb7c4f6ac4..031220b5404f0caa2c97d4c80be831c88e80fd3e 100644 --- a/ecrire/inc_getdocument.php3 +++ b/ecrire/inc_getdocument.php3 @@ -213,14 +213,35 @@ function afficher_compactes($image_name /* not used */, $fichiers, $link) { // Si on doit conserver une copie locale des fichiers distants, autant que ca // soit a un endroit canonique -- si ca peut etre bijectif c'est encore mieux, // mais la tout de suite je ne trouve pas l'idee, etant donne les limitations -// des filessystems -function fichier_copie_locale($source, $extension) { +// des filesystems +function nom_fichier_copie_locale($source, $extension) { $dir = _DIR_IMG. creer_repertoire(_DIR_IMG, 'distant'); # IMG/distant/ $dir2 = $dir . creer_repertoire($dir, $extension); # IMG/distant/pdf/ return $dir2 . substr(basename($source).'-'.md5($source),0,12). substr(md5($source),0,4).'.'.$extension; } +// +// Donne le nom de la copie locale de la source +// +function fichier_copie_locale($source) { + // Si c'est une image de IMG/ pas de souci + if (preg_match(',^'._DIR_IMG.',', $source)) + return $source; + + // Si l'extension n'est pas precisee, aller la chercher dans la table + // des documents -- si la source n'est pas dans la table des documents, + // on ne fait rien + if ($t = spip_fetch_array(spip_query("SELECT * FROM spip_documents + WHERE fichier='".addslashes($source)."' AND distant='oui'"))) + list($extension) = spip_fetch_array(spip_query("SELECT extension + FROM spip_types_documents WHERE id_type=".$t['id_type'])); + + if ($extension) + return nom_fichier_copie_locale($source, $extension); +} + + // Recuperer les infos d'un document distant, sans trop le telecharger function recuperer_infos_distantes($source, $max=0) { include_ecrire('inc_sites.php3'); @@ -251,8 +272,12 @@ function recuperer_infos_distantes($source, $max=0) { $a['taille'] = intval($regs[1]); } - // Si on n'a pas reussi avec une requete HEAD, ou si au contraire on a - // il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller + // Echec avec HEAD, on tente avec GET + if (!$a) { + $a = recuperer_infos_distantes($source, 1024*1024); + } + + // S'il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller // recharger le document en GET et recuperer des donnees supplementaires... if (preg_match(',^image/(jpeg|gif|png|swf),', $mime_type)) { if ($max == 0 @@ -262,7 +287,7 @@ function recuperer_infos_distantes($source, $max=0) { $a = recuperer_infos_distantes($source, 1024*1024); } else if ($a['body']) { - $a['fichier'] = fichier_copie_locale($source, $a['extension']); + $a['fichier'] = nom_fichier_copie_locale($source, $a['extension']); ecrire_fichier($a['fichier'], $a['body']); $size_image = @getimagesize($a['fichier']); $a['largeur'] = intval($size_image[0]); @@ -427,12 +452,17 @@ function ajouter_un_document ($source, $nom_envoye, $type_lien, $id_lien, $mode, else $documents_actifs[] = $id_document; +/** + DESACTIVE CAR UTILISATION PAR DEFAUT DES IMAGES REDUITES + // Creer la vignette des images if (ereg(",$ext,", ','.lire_meta('formats_graphiques').',') AND $mode == 'document' AND $type_image) creer_fichier_vignette($fichier); +**/ + // Pour les fichiers distants remettre l'URL de base if ($distant == 'oui') spip_query("UPDATE spip_documents SET fichier='".addslashes($source)."' @@ -918,9 +948,12 @@ function tourner_document($var_rot, $doc_rotate, $convert_command) { $largeur = $size_image[0]; $hauteur = $size_image[1]; +/* + A DESACTIVER PEUT-ETRE ? QUE SE PASSE--IL SI JE TOURNE UNE IMAGE AYANT UNE VGNETTE "MANUELLE" -> NE PAS CREER DE VIGNETTE TOURNEE -- EN VERITE IL NE FAUT PAS PERMETTRE DE TOURNER UNE IMAGE AYANT UNE VIGNETTE MANUELLE if ($id_vignette > 0) { creer_fichier_vignette($image); } +*/ spip_query("UPDATE spip_documents SET largeur=$largeur, hauteur=$hauteur WHERE id_document=$doc_rotate"); diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3 index f43a304c42cfe145b5063824845a31e7ac89b962..3516283bdb8d401e60d9e0694ec68bf29b479698 100644 --- a/ecrire/inc_logos.php3 +++ b/ecrire/inc_logos.php3 @@ -270,8 +270,16 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf return; } + // Si l'image est de la taille demandee (ou plus petite), simplement + // la retourner + if ($srcWidth + AND $srcWidth <= $maxWidth AND $srcHeight <= $maxHeight) { + $vignette = $destination.'.'.preg_replace(',^.*\.,', '', $image); + @copy($image, $vignette); + } + // imagemagick en ligne de commande - if ($process == 'convert') { + else if ($process == 'convert') { $format = $formats_sortie[0]; $vignette = $destination.".".$format; $commande = "$convert_command -size ${destWidth}x${destHeight} ./$image -geometry ${destWidth}x${destHeight} +profile \"*\" ./".escapeshellcmd($vignette); @@ -283,8 +291,8 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf } } else - // imagick (php4-imagemagick) - if ($process == 'imagick') { + // imagick (php4-imagemagick) + if ($process == 'imagick') { $format = $formats_sortie[0]; $vignette = "$destination.".$format; $handle = imagick_readimage($image); @@ -295,7 +303,7 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf return; } } - if ($process == "netpbm") { + else if ($process == "netpbm") { $format_sortie = "jpg"; $vignette = $destination.".".$format_sortie; $pnmtojpeg_command = ereg_replace("pnmscale", "pnmtojpeg", $pnmscale_command); @@ -325,7 +333,7 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf } } // gd ou gd2 - if ($process == 'gd1' OR $process == 'gd2') { + else if ($process == 'gd1' OR $process == 'gd2') { // Recuperer l'image d'origine if ($format == "jpg") { @@ -393,7 +401,7 @@ function creer_vignette($image, $maxWidth, $maxHeight, $format, $destdir, $destf $retour['height'] = $hauteur = $size[1]; $retour['fichier'] = $vignette; $retour['format'] = $format; - $retour['date'] = filemtime($vignette); + $retour['date'] = @filemtime($vignette); // renvoyer l'image @@ -437,9 +445,10 @@ function taille_image($img) { // [(#LOGO_ARTICLE||reduire_image{100,60})] // -function reduire_image_logo($img, $taille = 120, $taille_y=0) { - if (!$taille_y) - $taille_y = $taille; +function reduire_image_logo($img, $taille = 0, $taille_y=0) { + if (!$taille) $taille = lire_meta('taille_preview'); + if (!$taille) $taille = 150; + if (!$taille_y) $taille_y = $taille; // recuperer le nom du fichier if (eregi("img src=['\"]([^'\"]+)['\"]", $img, $regs)) $logo = $regs[1]; @@ -471,8 +480,9 @@ function reduire_image_logo($img, $taille = 120, $taille_y=0) { $vignette = $preview['fichier']; $width = $preview['width']; $height = $preview['height']; - $date = $preview['date']; - return "<img src='$vignette?date=$date' width='$width' height='$height'$attributs />"; + if (!_DIR_ECRIRE) + $date = '?date='.$preview['date']; + return "<img src='$vignette$date' width='$width' height='$height'$attributs />"; } else if ($taille_origine = @getimagesize($logo)) { $date = filemtime($logo); diff --git a/inc-balises.php3 b/inc-balises.php3 index 4b3e81abaecf672274d1fa5a12c2a4855d57dc4d..6764d86fa540e86420475e30c387fc02792e4d41 100644 --- a/inc-balises.php3 +++ b/inc-balises.php3 @@ -599,15 +599,15 @@ function calculer_balise_logo ($p) { $code_lien .= ", '". addslashes($align) . "'"; } $code_lien .= ",'logo $type_objet ' . $_id_objet"; + // cas des documents if ($type_objet == 'DOCUMENT') { - $code_logo = "calcule_document($_id_objet, '" . + $p->code = "calcule_logo_document($_id_objet, '" . $p->descr['documents'] . - '\', $doublons)'; - if ($flag_fichier) - $p->code = "calcule_fichier_logo($code_logo)"; - else - $p->code = "affiche_logos(array($code_logo, ''), $code_lien)"; + '\', $doublons, '. intval($flag_fichier).", $code_lien, '". + // #LOGO_DOCUMENT{x,y} donne la taille maxi + texte_script(param_balise($p)) + ."')"; } else { $p->code = "affiche_logos(calcule_logo('$type_objet', '" . diff --git a/inc-calcul-outils.php3 b/inc-calcul-outils.php3 index de5a5cec7e0d96aac211de4688ff65d67ff091fc..88460d451acf89412960ca8df8abaa691c0ee4b2 100644 --- a/inc-calcul-outils.php3 +++ b/inc-calcul-outils.php3 @@ -249,37 +249,67 @@ function calcul_branche ($generation) { } // fonction appelee par la balise #LOGO_DOCUMENT -function calcule_document($id_document, $doubdoc, &$doublons) { +function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $params, $lien, $align, $alt) { if (!$id_document) return ''; - if ($doubdoc && $id_document) $doublons["documents"] .= ', ' . $id_document; + if ($doubdoc) $doublons["documents"] .= ','.$id_document; if (!($row = spip_abstract_select(array('id_type', 'id_vignette', 'fichier', 'mode'), array('spip_documents AS documents'), array("id_document = $id_document")))) -// pas de document. Ne devrait pas arriver + // pas de document. Ne devrait pas arriver return ''; list($id_type, $id_vignette, $fichier, $mode) = spip_abstract_fetch($row); + + // Lien par defaut = l'adresse du document + if (!$lien) $lien = $fichier; + + // Y a t il une vignette personnalisee ? if ($id_vignette) { - if ($res = spip_abstract_select(array('fichier'), array('spip_documents AS documents'), array("id_document = $id_vignette"))) { + if ($res = spip_abstract_select(array('fichier'), + array('spip_documents AS documents'), + array("id_document = $id_vignette"))) { list($vignette) = spip_abstract_fetch($res); if (@file_exists($vignette)) - return generer_url_document($id_vignette); - # return ($fichier); # en std g_u_d fait ca + $logo = generer_url_document($id_vignette); + } + } else if ($mode == 'vignette') { + $logo = generer_url_document($id_document); + } + + if (!$logo) { + // Retrouver l'extension + list($extension) = + spip_abstract_fetch(spip_abstract_select(array('extension'), + array('spip_types_documents AS documents'), + array("id_type = " . intval($id_type)))); + if (!$extension) $extension = 'txt'; + + // Pas de vignette, mais un fichier image -- creer la vignette + if (strstr(lire_meta('formats_graphiques'), $extension) + AND lire_meta('creer_preview') == 'oui') { + if ($img = copie_locale($fichier)) { + // taille maximum [(#LOGO_DOCUMENT{300,52})] + list($x,$y) = split(',', ereg_replace("[\{\}]", "", $params)); + $lien_logo = reduire_image($img, $x, $y); + $logo = extraire_attribut($lien_logo, 'src'); + if ($lien) + $lien_logo = "<a href=\"$lien\">$lien_logo</a>"; + } } - } else if ($mode == 'vignette') - return generer_url_document($id_document); - # return $fichier; # en std g_u_d fait ca - - // calcul de l'extension par tous les moyens - if ($id_type) { - list($ext) = spip_abstract_fetch(spip_abstract_select(array('extension'), array('spip_types_documents AS documents'), array("id_type = " . intval($id_type)))); - } else { - eregi('\.([a-z0-9]+)$', $fichier, $regs); - $ext = $regs[1]; + + // Document sans vignette ni image : vignette par defaut + if (!$logo) + $logo = vignette_par_defaut($extension, false); } - // Pas de vignette mais une extension : - // envoyer une vignette par defaut - return vignette_par_defaut($ext ? $ext : 'txt', false); + // flag_fichier : seul le fichier est demande + if ($flag_fichier) + return calcule_fichier_logo($logo); # supprimer le IMG/ + + // sinon calculer le code html de l'image, sauf si reduire_image le donne + if (!$lien_logo) + $lien_logo = affiche_logos(array($logo), $lien, $align, $alt); + + return $lien_logo; } diff --git a/spip_image.php3 b/spip_image.php3 index a978d6605f3037f51ff112e6c81113ef83d7f7cf..2248e15b0abaef8e958062ec1335efc61d0ee33c 100644 --- a/spip_image.php3 +++ b/spip_image.php3 @@ -49,6 +49,9 @@ if ($forcer_document) $mode = 'document'; if ($test_vignette) $retour_image = tester_vignette($test_vignette); +/** + OBSOLETE + // Creation de vignette depuis le portfolio (ou autre) else if ($vignette) { if ($creer_vignette == 'oui' AND @@ -59,6 +62,8 @@ else if ($vignette) { $retour_image = creer_fichier_vignette($vignette, true); # obsolete } +**/ + // // Ajout d'un document ou d'une image diff --git a/spip_image_reduite.php3 b/spip_image_reduite.php3 index ec72be56c45276cc36c08510ff0fc6056f4e1344..0de806e7aca42acde641e6dfdaf5589f6c8b60a8 100644 --- a/spip_image_reduite.php3 +++ b/spip_image_reduite.php3 @@ -14,10 +14,20 @@ include ("ecrire/inc_version.php3"); include_ecrire("inc_admin.php3"); include_ecrire("inc_logos.php3"); +include_ecrire("inc_filtres.php3"); # pour copie_locale() + + +// Securite : on est appele exclusivement depuis ecrire/ +if (!verifier_action_auteur("reduire $taille_x $taille_y", $hash, $hash_id_auteur)) exit; + if (!$taille_y) $taille_y = $taille_x; + +// Si le fichier est distant voir si on dispose d'une copie locale +$img = copie_locale($img); + // Chercher l'image dans le repertoire IMG/ if (eregi("(\.\./)?(.*)\.(jpg|gif|png)$", $img, $regs) AND $i = cherche_image_nommee($regs[2], array($regs[3])) # hu ? @@ -32,9 +42,7 @@ AND $i = cherche_image_nommee($regs[2], array($regs[3])) # hu ? if (lire_meta('creer_preview') <> 'oui') $stop = true; -if (!$stop -AND verifier_action_auteur("reduire $taille_x $taille_y", $hash, $hash_id_auteur)) - { +if (!$stop) { list($dir,$nom,$format) = $i; $logo = $dir . $nom . '.' . $format; @@ -46,7 +54,9 @@ AND verifier_action_auteur("reduire $taille_x $taille_y", $hash, $hash_id_auteur } // Envoie le navigateur vers l'image cible -redirige_par_entete($img); - +if ($img) + redirige_par_entete($img); +else + redirige_par_entete(_DIR_IMG.'test.jpg'); # image noire = erreur (on ne devrait jamais arriver ici, sauf echec du chargement d'un doc distant) ?> \ No newline at end of file