diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 95b5844269c..73e58ec230a 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -65,6 +65,22 @@ if ( (isset($_POST["action"]) && $_POST["action"] == 'update') if (doliMoveFileUpload($_FILES["logo"]["tmp_name"],$conf->societe->dir_logos.'/'.$original_file)) { dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO",$original_file); + + // Création de la vignette de la page login + $imgThumbSmall = vignette($conf->societe->dir_logos.'/'.$original_file, 200, 100, '_small',80); + if (eregi('([^\\\/:]+)$',$imgThumbSmall,$reg)) + { + $imgThumbSmall = $reg[1]; + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall); + } + + // Création de la vignette de la page "Société/Institution" + $imgThumbMini = vignette($conf->societe->dir_logos.'/'.$original_file, 100, 30, '_mini',80); + if (eregi('([^\\\/:]+)$',$imgThumbMini,$reg)) + { + $imgThumbMini = $reg[1]; + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini); + } } else { @@ -95,12 +111,46 @@ if ( (isset($_POST["action"]) && $_POST["action"] == 'update') } } +if ($_GET["action"] == 'addthumb') +{ + if (file_exists($conf->societe->dir_logos.'/'.$_GET["file"])) + { + // Création de la vignette de la page login + $imgThumbSmall = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 200, 100, '_small',80); + if (eregi('([^\\\/:]+)$',$imgThumbSmall,$reg)) + { + $imgThumbSmall = $reg[1]; + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall); + } + + // Création de la vignette de la page "Société/Institution" + $imgThumbMini = vignette($conf->societe->dir_logos.'/'.$_GET["file"], 100, 30, '_mini',80); + if (eregi('([^\\\/:]+)$',$imgThumbMini,$reg)) + { + $imgThumbMini = $reg[1]; + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini); + } + } + Header("Location: ".$_SERVER["PHP_SELF"]); + exit; +} + if ($_GET["action"] == 'removelogo') { $logofile=$conf->societe->dir_logos.'/'.$mysoc->logo; @unlink($logofile); dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO"); $mysoc->logo=''; + + $logosmallfile=$conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_small; + @unlink($logosmallfile); + dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL"); + $mysoc->logo_small=''; + + $logominifile=$conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_mini; + @unlink($logominifile); + dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI"); + $mysoc->logo_mini=''; } /* @@ -187,16 +237,16 @@ if ((isset($_GET["action"]) && $_GET["action"] == 'edit') print '
'; print ''; print ''; - if ($mysoc->logo && file_exists($conf->societe->dir_logos.'/'.$mysoc->logo)) - { - print ''.img_delete($langs->trans("Delete")).''; - print '   '; - print ''; - } + if ($mysoc->logo_mini && file_exists($conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_mini)) + { + print ''.img_delete($langs->trans("Delete")).''; + print '   '; + print ''; + } else - { - print ''; - } + { + print ''; + } print '
'; print ''; @@ -425,9 +475,15 @@ else print '
'; print $mysoc->logo; print ''; - if ($mysoc->logo && file_exists($conf->societe->dir_logos.'/'.$mysoc->logo)) + + // On propose la génération de la vignette si elle n'existe pas + if (!file_exists($conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_mini) && eregi('(\.jpg|\.jpeg|\.png)$',$mysoc->logo)) { - print ''; + print 'logo).'">'.img_refresh($langs->trans('GenerateThumb')).'  '; + } + else if ($mysoc->logo_mini && file_exists($conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_mini)) + { + print ''; } else { diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index af405640e68..e07507eb08d 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -1185,7 +1185,7 @@ function dol_loginfunction($notused,$pearstatus) print '">'; // Table 1 - print ''; + print '
'; if (file_exists(DOL_DOCUMENT_ROOT.'/logo.png')) { // Cas qui ne devrait pas arriver (pour compatibilité) @@ -1200,7 +1200,7 @@ function dol_loginfunction($notused,$pearstatus) print '
'; // Table 2 - print '
'; + print '
'; print ''; @@ -1210,17 +1210,15 @@ function dol_loginfunction($notused,$pearstatus) if ($conf->main_authentication) $title.=$langs->trans("AuthenticationMode").': '.$conf->main_authentication; // Affiche logo du theme si existe, sinon logo commun $urllogo=DOL_URL_ROOT.'/theme/login_logo.png'; - if (is_readable($conf->societe->dir_logos.'/'.$mysoc->logo)) + if (is_readable($conf->societe->dir_logos.'/thumbs/'.$mysoc->logo_small)) { - $urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=companylogo&file='.urlencode($mysoc->logo); - $height=100; // \TODO Forcer la hauteur uniquement si hauteur > 100 ou largeur > 100 + $urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=companylogo&file='.urlencode($mysoc->logo_small); } elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/login_logo.png')) { $urllogo=DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/login_logo.png'; - $height=80; } - print ''; + print ''; print ''; @@ -2951,9 +2949,11 @@ function print_date_range($date_start,$date_end) * \param file Chemin du fichier image à redimensionner * \param maxWidth Largeur maximum que dois faire la miniature (160 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 quality Qualité de compression jpeg * \return imgThumbName Chemin de la vignette */ -function vignette($file, $maxWidth = 160, $maxHeight = 120){ +function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50){ // Vérification des erreurs dans les paramètres de la fonction //============================================================ @@ -2961,7 +2961,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120){ // Si le fichier passé en paramètre n'existe pas return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.'; } - elseif(!eregi('(\.jpg|\.png)$',$file)) + elseif(!eregi('(\.jpg|\.jpeg|\.png)$',$file)) { // Todo: Ajouter création vignette pour les autres formats d'images return 'Le fichier '.$file.' n\'ai pas géré pour le moment.'; @@ -3035,7 +3035,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120){ imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée $fileName = basename($file, $extImg); // Nom du fichier sans son extension - $imgThumbName = $dirthumb.$fileName.'_small'.$extImg; // Chemin complet du fichier de la vignette + $imgThumbName = $dirthumb.$fileName.$extName.$extImg; // Chemin complet du fichier de la vignette //Création du fichier de la vignette $fp = fopen($imgThumbName, "w"); @@ -3044,7 +3044,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120){ // Renvoi la vignette créée switch($infoImg[2]){ case 2: - imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50 + imagejpeg($imgThumb, $imgThumbName, $quality); // Renvoi d'une image jpeg avec une qualité de 50 break; case 3: imagepng($imgThumb, $imgThumbName); diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index c7641cd4e7b..e4b4cbd2654 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -269,6 +269,8 @@ $mysoc->forme_juridique_code=$conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE; $mysoc->email=$conf->global->MAIN_INFO_SOCIETE_MAIL; $mysoc->adresse_full=$mysoc->adresse."\n".$mysoc->cp." ".$mysoc->ville; $mysoc->logo=$conf->global->MAIN_INFO_SOCIETE_LOGO; +$mysoc->logo_small=$conf->global->MAIN_INFO_SOCIETE_LOGO_SMALL; +$mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI; // Sert uniquement dans module telephonie diff --git a/htdocs/product/photos.php b/htdocs/product/photos.php index 9e5be3a85a2..a6f154d233c 100644 --- a/htdocs/product/photos.php +++ b/htdocs/product/photos.php @@ -217,7 +217,7 @@ if ($_GET["id"] || $_GET["ref"]) print '
'; // On propose la génération de la vignette si elle n'existe pas et si la taille est supérieure aux limites - if (!$obj['photo_vignette'] && eregi('(\.jpg|\.png)$',$obj['photo']) && ($product->imgWidth > $maxWidth || $product->imgHeight > $maxHeight)) + if (!$obj['photo_vignette'] && eregi('(\.jpg|\.jpeg|\.png)$',$obj['photo']) && ($product->imgWidth > $maxWidth || $product->imgHeight > $maxHeight)) { print ''.img_refresh($langs->trans('GenerateThumb')).'  '; } diff --git a/htdocs/viewimage.php b/htdocs/viewimage.php index 38151d25ea2..90899ee3b97 100644 --- a/htdocs/viewimage.php +++ b/htdocs/viewimage.php @@ -62,20 +62,22 @@ if ($modulepart) // Wrapping pour les photo utilisateurs if ($modulepart == 'companylogo') { - $accessallowed=1; - //} - $original_file=$conf->societe->dir_logos.'/'.$original_file; + $accessallowed=1; + if (eregi('_small',$original_file) || eregi('_mini',$original_file)) + { + $original_file=$conf->societe->dir_logos.'/thumbs/'.$original_file; + } + else + { + $original_file=$conf->societe->dir_logos.'/'.$original_file; + } } // Wrapping pour les photos utilisateurs if ($modulepart == 'userphoto') { - //$user->getrights('facture'); - //if ($user->rights->facture->lire) - //{ - $accessallowed=1; - //} - $original_file=$conf->users->dir_output.'/'.$original_file; + $accessallowed=1; + $original_file=$conf->users->dir_output.'/'.$original_file; } // Wrapping pour les apercu factures