On cree toujours les vignettes pour plsu d'uniformite. Ainsi on a pas a chercher si la fichier est present ou non qd il faut afficher une vignette

This commit is contained in:
Laurent Destailleur 2007-09-08 10:40:28 +00:00
parent 4414184185
commit 6d1af21c41
2 changed files with 23 additions and 17 deletions

View File

@ -129,7 +129,7 @@ if ($_GET["action"] == 'addthumb')
{ {
// Création de la vignette de la page login // Création de la vignette de la page login
$imgThumbSmall = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 200, 100, '_small',80); $imgThumbSmall = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 200, 100, '_small',80);
if (eregi('([^\\\/:]+)$',$imgThumbSmall,$reg)) if (image_format_supported($imgThumbSmall) >= 0 && eregi('([^\\\/:]+)$',$imgThumbSmall,$reg))
{ {
$imgThumbSmall = $reg[1]; $imgThumbSmall = $reg[1];
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall);
@ -138,9 +138,9 @@ if ($_GET["action"] == 'addthumb')
// Création de la vignette de la page "Société/Institution" // Création de la vignette de la page "Société/Institution"
$imgThumbMini = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 100, 30, '_mini',80); $imgThumbMini = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 100, 30, '_mini',80);
if (eregi('([^\\\/:]+)$',$imgThumbMini,$reg)) if (image_format_supported($imgThumbSmall) >= 0 && eregi('([^\\\/:]+)$',$imgThumbMini,$reg))
{ {
$imgThumbMini = $reg[1]; $imgThumbMini = $reg[1];
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini);
} }
else dolibarr_syslog($imgThumbMini); else dolibarr_syslog($imgThumbMini);

View File

@ -3066,27 +3066,32 @@ function print_date_range($date_start,$date_end)
* \param maxHeight Hauteur maximum que dois faire l'image (120 par défaut) * \param maxHeight Hauteur maximum que dois faire l'image (120 par défaut)
* \param extName Extension pour différencier le nom de la vignette * \param extName Extension pour différencier le nom de la vignette
* \param quality Qualité de compression jpeg * \param quality Qualité de compression jpeg
* \return imgThumbName Chemin de la vignette * \return string Chemin de la vignette
*/ */
function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50) function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50)
{ {
global $langs;
dolibarr_syslog("functions.inc::vignette file=".$file." extName=".$extName); dolibarr_syslog("functions.inc::vignette file=".$file." extName=".$extName);
// Vérification des erreurs dans les paramètres de la fonction // Nettoyage parametres
//============================================================ $file=trim($file);
if(!file_exists($file)){
// Si le fichier passé en paramètre n'existe pas // Vérification des paramètres
return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.'; if (! $file)
}
elseif(!eregi('(\.jpg|\.jpeg|\.png)$',$file))
{ {
// Todo: Ajouter création vignette pour les autres formats d'images
return 'Le fichier '.$file.' n\'est pas géré pour le moment.';
}
elseif(empty($file)){
// Si le fichier n'a pas été indiqué // Si le fichier n'a pas été indiqué
return 'Nom du fichier non renseigné.'; return 'Nom du fichier non renseigné.';
} }
elseif (! file_exists($file))
{
// Si le fichier passé en paramètre n'existe pas
return $langs->trans("ErrorFileNotFound",$file);
}
elseif(image_format_supported($file) < 0)
{
return 'This file '.$file.' does not seem to be an image format file name.';
}
elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){ elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
// Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0) // Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la largeur incorrecte.'; return 'Valeur de la largeur incorrecte.';
@ -3095,7 +3100,6 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $
// Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0) // Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la hauteur incorrecte.'; return 'Valeur de la hauteur incorrecte.';
} }
//============================================================
$fichier = realpath($file); // Chemin canonique absolu de l'image $fichier = realpath($file); // Chemin canonique absolu de l'image
$dir = dirname($file).'/'; // Chemin du dossier contenant l'image $dir = dirname($file).'/'; // Chemin du dossier contenant l'image
@ -3107,7 +3111,9 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $
// Si l'image est plus petite que la largeur et le hauteur max, on ne crée pas de vignette // Si l'image est plus petite que la largeur et le hauteur max, on ne crée pas de vignette
if ($infoImg[0] < $maxWidth && $infoImg[1] < $maxHeight) if ($infoImg[0] < $maxWidth && $infoImg[1] < $maxHeight)
{ {
return 'Le fichier '.$file.' ne nécessite pas de création de vignette'; // On cree toujours les vignettes
dolibarr_syslog("File size is smaller than thumb size",LOG_DEBUG);
//return 'Le fichier '.$file.' ne nécessite pas de création de vignette';
} }
$imgfonction=''; $imgfonction='';