123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- <?php
- /* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2005-2007 Regis Houssin <regis.houssin@capnetworks.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * or see http://www.gnu.org/
- */
- /**
- * \file htdocs/core/lib/images.lib.php
- * \brief Set of function for manipulating images
- */
- // Define size of logo small and mini
- $maxwidthsmall=270;$maxheightsmall=150;
- $maxwidthmini=128;$maxheightmini=72;
- $quality = 80;
- /**
- * Return if a filename is file name of a supported image format
- *
- * @param string $file Filename
- * @return int -1=Not image filename, 0=Image filename but format not supported by PHP, 1=Image filename with format supported
- */
- function image_format_supported($file)
- {
- // Case filename is not a format image
- if (! preg_match('/(\.gif|\.jpg|\.jpeg|\.png|\.bmp)$/i',$file,$reg)) return -1;
- // Case filename is a format image but not supported by this PHP
- $imgfonction='';
- if (strtolower($reg[1]) == '.gif') $imgfonction = 'imagecreatefromgif';
- if (strtolower($reg[1]) == '.png') $imgfonction = 'imagecreatefrompng';
- if (strtolower($reg[1]) == '.jpg') $imgfonction = 'imagecreatefromjpeg';
- if (strtolower($reg[1]) == '.jpeg') $imgfonction = 'imagecreatefromjpeg';
- if (strtolower($reg[1]) == '.bmp') $imgfonction = 'imagecreatefromwbmp';
- if ($imgfonction)
- {
- if (! function_exists($imgfonction))
- {
- // Fonctions de conversion non presente dans ce PHP
- return 0;
- }
- }
- // Filename is a format image and supported by this PHP
- return 1;
- }
- /**
- * Return size of image file on disk (Supported extensions are gif, jpg, png and bmp)
- *
- * @param string $file Full path name of file
- * @param bool $url Image with url (true or false)
- * @return array array('width'=>width, 'height'=>height)
- */
- function dol_getImageSize($file, $url = false)
- {
- $ret=array();
- if (image_format_supported($file) < 0) return $ret;
- $fichier = $file;
- if (!$url)
- {
- $fichier = realpath($file); // Chemin canonique absolu de l'image
- $dir = dirname($file); // Chemin du dossier contenant l'image
- }
- $infoImg = getimagesize($fichier); // Recuperation des infos de l'image
- $ret['width']=$infoImg[0]; // Largeur de l'image
- $ret['height']=$infoImg[1]; // Hauteur de l'image
- return $ret;
- }
- /**
- * Resize or crop an image file (Supported extensions are gif, jpg, png and bmp)
- *
- * @param string $file Path of file to resize/crop
- * @param int $mode 0=Resize, 1=Crop
- * @param int $newWidth Largeur maximum que dois faire l'image destination (0=keep ratio)
- * @param int $newHeight Hauteur maximum que dois faire l'image destination (0=keep ratio)
- * @param int $src_x Position of croping image in source image (not use if mode=0)
- * @param int $src_y Position of croping image in source image (not use if mode=0)
- * @return int File name if OK, error message if KO
- */
- function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x=0, $src_y=0)
- {
- require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
- global $conf,$langs;
- dol_syslog("dol_imageResizeOrCrop file=".$file." mode=".$mode." newWidth=".$newWidth." newHeight=".$newHeight." src_x=".$src_x." src_y=".$src_y);
- // Clean parameters
- $file=trim($file);
- // Check parameters
- if (! $file)
- {
- // Si le fichier n'a pas ete indique
- return 'Bad parameter file';
- }
- elseif (! file_exists($file))
- {
- // Si le fichier passe en parametre n'existe pas
- return $langs->trans("ErrorFileNotFound",$file);
- }
- elseif(image_format_supported($file) < 0)
- {
- return 'This filename '.$file.' does not seem to be an image filename.';
- }
- elseif(!is_numeric($newWidth) && !is_numeric($newHeight))
- {
- return 'Wrong value for parameter newWidth or newHeight';
- }
- elseif ($mode == 0 && $newWidth <= 0 && $newHeight <= 0)
- {
- return 'At least newHeight or newWidth must be defined for resizing';
- }
- elseif ($mode == 1 && ($newWidth <= 0 || $newHeight <= 0))
- {
- return 'Both newHeight or newWidth must be defined for croping';
- }
- $fichier = realpath($file); // Chemin canonique absolu de l'image
- $dir = dirname($file); // Chemin du dossier contenant l'image
- $infoImg = getimagesize($fichier); // Recuperation des infos de l'image
- $imgWidth = $infoImg[0]; // Largeur de l'image
- $imgHeight = $infoImg[1]; // Hauteur de l'image
- if ($mode == 0) // If resize, we check parameters
- {
- if ($newWidth <= 0)
- {
- $newWidth=intval(($newHeight / $imgHeight) * $imgWidth); // Keep ratio
- }
- if ($newHeight <= 0)
- {
- $newHeight=intval(($newWidth / $imgWidth) * $imgHeight); // Keep ratio
- }
- }
- $imgfonction='';
- switch($infoImg[2])
- {
- case 1: // IMG_GIF
- $imgfonction = 'imagecreatefromgif';
- break;
- case 2: // IMG_JPG
- $imgfonction = 'imagecreatefromjpeg';
- break;
- case 3: // IMG_PNG
- $imgfonction = 'imagecreatefrompng';
- break;
- case 4: // IMG_WBMP
- $imgfonction = 'imagecreatefromwbmp';
- break;
- }
- if ($imgfonction)
- {
- if (! function_exists($imgfonction))
- {
- // Fonctions de conversion non presente dans ce PHP
- return 'Resize not possible. This PHP does not support GD functions '.$imgfonction;
- }
- }
- // Initialisation des variables selon l'extension de l'image
- switch($infoImg[2])
- {
- case 1: // Gif
- $img = imagecreatefromgif($fichier);
- $extImg = '.gif'; // File name extension of image
- $newquality='NU'; // Quality is not used for this format
- break;
- case 2: // Jpg
- $img = imagecreatefromjpeg($fichier);
- $extImg = '.jpg';
- $newquality=100; // % quality maximum
- break;
- case 3: // Png
- $img = imagecreatefrompng($fichier);
- $extImg = '.png';
- $newquality=0; // No compression (0-9)
- break;
- case 4: // Bmp
- $img = imagecreatefromwbmp($fichier);
- $extImg = '.bmp';
- $newquality='NU'; // Quality is not used for this format
- break;
- }
- // Create empty image
- if ($infoImg[2] == 1)
- {
- // Compatibilite image GIF
- $imgThumb = imagecreate($newWidth, $newHeight);
- }
- else
- {
- $imgThumb = imagecreatetruecolor($newWidth, $newHeight);
- }
- // Activate antialiasing for better quality
- if (function_exists('imageantialias'))
- {
- imageantialias($imgThumb, true);
- }
- // This is to keep transparent alpha channel if exists (PHP >= 4.2)
- if (function_exists('imagesavealpha'))
- {
- imagesavealpha($imgThumb, true);
- }
- // Initialisation des variables selon l'extension de l'image
- switch($infoImg[2])
- {
- case 1: // Gif
- $trans_colour = imagecolorallocate($imgThumb, 255, 255, 255); // On procede autrement pour le format GIF
- imagecolortransparent($imgThumb,$trans_colour);
- break;
- case 2: // Jpg
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
- break;
- case 3: // Png
- imagealphablending($imgThumb,false); // Pour compatibilite sur certain systeme
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 127); // Keep transparent channel
- break;
- case 4: // Bmp
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
- break;
- }
- if (function_exists("imagefill")) imagefill($imgThumb, 0, 0, $trans_colour);
- dol_syslog("dol_imageResizeOrCrop: convert image from ($imgWidth x $imgHeight) at position ($src_x x $src_y) to ($newWidth x $newHeight) as $extImg, newquality=$newquality");
- //imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insere l'image de base redimensionnee
- imagecopyresampled($imgThumb, $img, 0, 0, $src_x, $src_y, $newWidth, $newHeight, ($mode==0?$imgWidth:$newWidth), ($mode==0?$imgHeight:$newHeight)); // Insere l'image de base redimensionnee
- $imgThumbName = $file;
- // Check if permission are ok
- //$fp = fopen($imgThumbName, "w");
- //fclose($fp);
- // Create image on disk
- switch($infoImg[2])
- {
- case 1: // Gif
- imagegif($imgThumb, $imgThumbName);
- break;
- case 2: // Jpg
- imagejpeg($imgThumb, $imgThumbName, $newquality);
- break;
- case 3: // Png
- imagepng($imgThumb, $imgThumbName, $newquality);
- break;
- case 4: // Bmp
- image2wbmp($imgThumb, $imgThumbName);
- break;
- }
- // Set permissions on file
- if (! empty($conf->global->MAIN_UMASK)) @chmod($imgThumbName, octdec($conf->global->MAIN_UMASK));
- // Free memory. This does not delete image.
- imagedestroy($img);
- imagedestroy($imgThumb);
- clearstatcache(); // File was replaced by a modified one, so we clear file caches.
- return $imgThumbName;
- }
- /**
- * Create a thumbnail from an image file (Supported extensions are gif, jpg, png and bmp).
- * If file is myfile.jpg, new file may be myfile_small.jpg
- *
- * @param string $file Path of source file to resize
- * @param int $maxWidth Largeur maximum que dois faire la miniature (-1=unchanged, 160 by default)
- * @param int $maxHeight Hauteur maximum que dois faire l'image (-1=unchanged, 120 by default)
- * @param string $extName Extension to differenciate thumb file name ('_small', '_mini')
- * @param int $quality Quality of compression (0=worst, 100=best)
- * @param string $outdir Directory where to store thumb
- * @param int $targetformat New format of target (1,2,3,... or 0 to keep old format)
- * @return string Full path of thumb or '' if it fails
- */
- function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50, $outdir='thumbs', $targetformat=0)
- {
- require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
- global $conf,$langs;
- dol_syslog("vignette file=".$file." extName=".$extName." maxWidth=".$maxWidth." maxHeight=".$maxHeight." quality=".$quality." outdir=".$outdir." targetformat=".$targetformat);
- // Clean parameters
- $file=trim($file);
- // Check parameters
- if (! $file)
- {
- // Si le fichier n'a pas ete indique
- return 'ErrorBadParameters';
- }
- elseif (! file_exists($file))
- {
- // Si le fichier passe en parametre n'existe pas
- dol_syslog($langs->trans("ErrorFileNotFound",$file),LOG_ERR);
- return $langs->trans("ErrorFileNotFound",$file);
- }
- elseif(image_format_supported($file) < 0)
- {
- dol_syslog('This file '.$file.' does not seem to be an image format file name.',LOG_WARNING);
- return 'ErrorBadImageFormat';
- }
- elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < -1){
- // Si la largeur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
- dol_syslog('Wrong value for parameter maxWidth',LOG_ERR);
- return 'Error: Wrong value for parameter maxWidth';
- }
- elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < -1){
- // Si la hauteur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
- dol_syslog('Wrong value for parameter maxHeight',LOG_ERR);
- return 'Error: Wrong value for parameter maxHeight';
- }
- $fichier = realpath($file); // Chemin canonique absolu de l'image
- $dir = dirname($file); // Chemin du dossier contenant l'image
- $infoImg = getimagesize($fichier); // Recuperation des infos de l'image
- $imgWidth = $infoImg[0]; // Largeur de l'image
- $imgHeight = $infoImg[1]; // Hauteur de l'image
- if ($maxWidth == -1) $maxWidth=$infoImg[0]; // If size is -1, we keep unchanged
- if ($maxHeight == -1) $maxHeight=$infoImg[1]; // If size is -1, we keep unchanged
- // Si l'image est plus petite que la largeur et la hauteur max, on ne cree pas de vignette
- if ($infoImg[0] < $maxWidth && $infoImg[1] < $maxHeight)
- {
- // On cree toujours les vignettes
- dol_syslog("File size is smaller than thumb size",LOG_DEBUG);
- //return 'Le fichier '.$file.' ne necessite pas de creation de vignette';
- }
- $imgfonction='';
- switch($infoImg[2])
- {
- case IMAGETYPE_GIF: // 1
- $imgfonction = 'imagecreatefromgif';
- break;
- case IMAGETYPE_JPEG: // 2
- $imgfonction = 'imagecreatefromjpeg';
- break;
- case IMAGETYPE_PNG: // 3
- $imgfonction = 'imagecreatefrompng';
- break;
- case IMAGETYPE_BMP: // 6
- // Not supported by PHP GD
- break;
- case IMAGETYPE_WBMP: // 15
- $imgfonction = 'imagecreatefromwbmp';
- break;
- }
- if ($imgfonction)
- {
- if (! function_exists($imgfonction))
- {
- // Fonctions de conversion non presente dans ce PHP
- return 'Error: Creation of thumbs not possible. This PHP does not support GD function '.$imgfonction;
- }
- }
- // On cree le repertoire contenant les vignettes
- $dirthumb = $dir.($outdir?'/'.$outdir:''); // Chemin du dossier contenant les vignettes
- dol_mkdir($dirthumb);
- // Initialisation des variables selon l'extension de l'image
- switch($infoImg[2])
- {
- case IMAGETYPE_GIF: // 1
- $img = imagecreatefromgif($fichier);
- $extImg = '.gif'; // Extension de l'image
- break;
- case IMAGETYPE_JPEG: // 2
- $img = imagecreatefromjpeg($fichier);
- $extImg = (preg_match('/\.jpeg$/',$file)?'.jpeg':'.jpg'); // Extension de l'image
- break;
- case IMAGETYPE_PNG: // 3
- $img = imagecreatefrompng($fichier);
- $extImg = '.png';
- break;
- case IMAGETYPE_BMP: // 6
- // Not supported by PHP GD
- $extImg = '.bmp';
- break;
- case IMAGETYPE_WBMP: // 15
- $img = imagecreatefromwbmp($fichier);
- $extImg = '.bmp';
- break;
- }
- if (! is_resource($img))
- {
- dol_syslog('Failed to detect type of image. We found infoImg[2]='.$infoImg[2], LOG_WARNING);
- return 0;
- }
- // Initialisation des dimensions de la vignette si elles sont superieures a l'original
- if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
- if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
- $whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
- $imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
- // Fixe les dimensions de la vignette
- if($whFact < $imgWhFact)
- {
- // Si largeur determinante
- $thumbWidth = $maxWidth;
- $thumbHeight = $thumbWidth / $imgWhFact;
- }
- else
- {
- // Si hauteur determinante
- $thumbHeight = $maxHeight;
- $thumbWidth = $thumbHeight * $imgWhFact;
- }
- $thumbHeight=round($thumbHeight);
- $thumbWidth=round($thumbWidth);
- // Define target format
- if (empty($targetformat)) $targetformat=$infoImg[2];
- // Create empty image
- if ($targetformat == IMAGETYPE_GIF)
- {
- // Compatibilite image GIF
- $imgThumb = imagecreate($thumbWidth, $thumbHeight);
- }
- else
- {
- $imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
- }
- // Activate antialiasing for better quality
- if (function_exists('imageantialias'))
- {
- imageantialias($imgThumb, true);
- }
- // This is to keep transparent alpha channel if exists (PHP >= 4.2)
- if (function_exists('imagesavealpha'))
- {
- imagesavealpha($imgThumb, true);
- }
- // Initialisation des variables selon l'extension de l'image
- switch($targetformat)
- {
- case IMAGETYPE_GIF: // 1
- $trans_colour = imagecolorallocate($imgThumb, 255, 255, 255); // On procede autrement pour le format GIF
- imagecolortransparent($imgThumb,$trans_colour);
- $extImgTarget = '.gif';
- $newquality='NU';
- break;
- case IMAGETYPE_JPEG: // 2
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
- $extImgTarget = (preg_match('/\.jpeg$/',$file)?'.jpeg':'.jpg');
- $newquality=$quality;
- break;
- case IMAGETYPE_PNG: // 3
- imagealphablending($imgThumb,false); // Pour compatibilite sur certain systeme
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 127); // Keep transparent channel
- $extImgTarget = '.png';
- $newquality=$quality-100;
- $newquality=round(abs($quality-100)*9/100);
- break;
- case IMAGETYPE_BMP: // 6
- // Not supported by PHP GD
- $extImgTarget = '.bmp';
- $newquality='NU';
- break;
- case IMAGETYPE_WBMP: // 15
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
- $extImgTarget = '.bmp';
- $newquality='NU';
- break;
- }
- if (function_exists("imagefill")) imagefill($imgThumb, 0, 0, $trans_colour);
- dol_syslog("vignette: convert image from ($imgWidth x $imgHeight) to ($thumbWidth x $thumbHeight) as $extImg, newquality=$newquality");
- //imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insere l'image de base redimensionnee
- imagecopyresampled($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insere l'image de base redimensionnee
- $fileName = preg_replace('/(\.gif|\.jpeg|\.jpg|\.png|\.bmp)$/i','',$file); // On enleve extension quelquesoit la casse
- $fileName = basename($fileName);
- $imgThumbName = $dirthumb.'/'.$fileName.$extName.$extImgTarget; // Chemin complet du fichier de la vignette
- // Check if permission are ok
- //$fp = fopen($imgThumbName, "w");
- //fclose($fp);
- // Create image on disk
- switch($targetformat)
- {
- case IMAGETYPE_GIF: // 1
- imagegif($imgThumb, $imgThumbName);
- break;
- case IMAGETYPE_JPEG: // 2
- imagejpeg($imgThumb, $imgThumbName, $newquality);
- break;
- case IMAGETYPE_PNG: // 3
- imagepng($imgThumb, $imgThumbName, $newquality);
- break;
- case IMAGETYPE_BMP: // 6
- // Not supported by PHP GD
- break;
- case IMAGETYPE_WBMP: // 15
- image2wbmp($imgThumb, $imgThumbName);
- break;
- }
- // Set permissions on file
- if (! empty($conf->global->MAIN_UMASK)) @chmod($imgThumbName, octdec($conf->global->MAIN_UMASK));
- // Free memory. This does not delete image.
- imagedestroy($img);
- imagedestroy($imgThumb);
- return $imgThumbName;
- }
- /**
- * This function returns the html for the moneymeter.
- *
- * @param int $actualValue amount of actual money
- * @param int $pendingValue amount of money of pending memberships
- * @param int $intentValue amount of intended money (that's without the amount of actual money)
- * @return string thermometer htmlLegenda
- */
- function moneyMeter($actualValue=0, $pendingValue=0, $intentValue=0)
- {
- global $langs;
- // variables
- $height="200";
- $maximumValue=125000;
- $imageDir = "http://eucd.info/images/therm/";
- $imageTop = $imageDir . "therm_top.png";
- $imageMiddleActual = $imageDir . "therm_actual.png";
- $imageMiddlePending = $imageDir . "therm_pending.png";
- $imageMiddleIntent = $imageDir . "therm_intent.png";
- $imageMiddleGoal = $imageDir . "therm_goal.png";
- $imageIndex = $imageDir . "therm_index.png";
- $imageBottom = $imageDir . "therm_bottom.png";
- $imageColorActual = $imageDir . "therm_color_actual.png";
- $imageColorPending = $imageDir . "therm_color_pending.png";
- $imageColorIntent = $imageDir . "therm_color_intent.png";
- $formThermTop = '
- <!-- Thermometer Begin -->
- <table cellpadding="0" cellspacing="4" border="0">
- <tr><td>
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td colspan="2"><img src="' . $imageTop . '" width="58" height="6" border="0"></td>
- </tr>
- <tr>
- <td>
- <table cellpadding="0" cellspacing="0" border="0">';
- $formSection = '
- <tr><td><img src="{image}" width="26" height="{height}" border="0"></td></tr>';
- $formThermbottom = '
- </table>
- </td>
- <td><img src="' . $imageIndex . '" width="32" height="200" border="0"></td>
- </tr>
- <tr>
- <td colspan="2"><img src="' . $imageBottom . '" width="58" height="32" border="0"></td>
- </tr>
- </table>
- </td>
- </tr></table>';
- // legenda
- $legendaActual = "€ " . round($actualValue);
- $legendaPending = "€ " . round($pendingValue);
- $legendaIntent = "€ " . round($intentValue);
- $legendaTotal = "€ " . round($actualValue + $pendingValue + $intentValue);
- $formLegenda = '
- <table cellpadding="0" cellspacing="0" border="0">
- <tr><td><img src="' . $imageColorActual . '" width="9" height="9"> </td><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>'.$langs->trans("Paid").':<br>' . $legendaActual . '</b></font></td></tr>
- <tr><td><img src="' . $imageColorPending . '" width="9" height="9"> </td><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">'.$langs->trans("Waiting").':<br>' . $legendaPending . '</font></td></tr>
- <tr><td><img src="' . $imageColorIntent . '" width="9" height="9"> </td><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">'.$langs->trans("Promesses").':<br>' . $legendaIntent . '</font></td></tr>
- <tr><td> </td><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Total:<br>' . $legendaTotal . '</font></td></tr>
- </table>
- <!-- Thermometer End -->';
- // check and edit some values
- $error = 0;
- if ( $maximumValue <= 0 || $height <= 0 || $actualValue < 0 || $pendingValue < 0 || $intentValue < 0)
- {
- return "The money meter could not be processed<br>\n";
- }
- if ( $actualValue > $maximumValue )
- {
- $actualValue = $maximumValue;
- $pendingValue = 0;
- $intentValue = 0;
- }
- else
- {
- if ( ($actualValue + $pendingValue) > $maximumValue )
- {
- $pendingValue = $maximumValue - $actualValue;
- $intentValue = 0;
- }
- else
- {
- if ( ($actualValue + $pendingValue + $intentValue) > $maximumValue )
- {
- $intentValue = $maximumValue - $actualValue - $pendingValue;
- }
- }
- }
- // start writing the html (from bottom to top)
- // bottom
- $thermometer = $formThermbottom;
- // actual
- $sectionHeight = round(($actualValue / $maximumValue) * $height);
- $totalHeight = $sectionHeight;
- if ( $sectionHeight > 0 )
- {
- $section = $formSection;
- $section = str_replace("{image}", $imageMiddleActual, $section);
- $section = str_replace("{height}", $sectionHeight, $section);
- $thermometer = $section . $thermometer;
- }
- // pending
- $sectionHeight = round(($pendingValue / $maximumValue) * $height);
- $totalHeight += $sectionHeight;
- if ( $sectionHeight > 0 )
- {
- $section = $formSection;
- $section = str_replace("{image}", $imageMiddlePending, $section);
- $section = str_replace("{height}", $sectionHeight, $section);
- $thermometer = $section . $thermometer;
- }
- // intent
- $sectionHeight = round(($intentValue / $maximumValue) * $height);
- $totalHeight += $sectionHeight;
- if ( $sectionHeight > 0 )
- {
- $section = $formSection;
- $section = str_replace("{image}", $imageMiddleIntent, $section);
- $section = str_replace("{height}", $sectionHeight, $section);
- $thermometer = $section . $thermometer;
- }
- // goal
- $sectionHeight = $height- $totalHeight;
- if ( $sectionHeight > 0 )
- {
- $section = $formSection;
- $section = str_replace("{image}", $imageMiddleGoal, $section);
- $section = str_replace("{height}", $sectionHeight, $section);
- $thermometer = $section . $thermometer;
- }
- // top
- $thermometer = $formThermTop . $thermometer;
- return $thermometer . $formLegenda;
- }
|