/htdocs/core/lib/images.lib.php
PHP | 675 lines | 468 code | 85 blank | 122 comment | 70 complexity | f9c660cad0d58ba5ee7b3e9acc591c71 MD5 | raw file
Possible License(s): LGPL-2.0
- <?php
- /* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr>
- *
- * 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 2 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 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 $file Full path name of file
- * @return Array array('width'=>width, 'height'=>height)
- */
- function dol_getImageSize($file)
- {
- $ret=array();
- if (image_format_supported($file) < 0) return $ret;
- $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 file Path of file to resize/crop
- * @param mode 0=Resize, 1=Crop
- * @param newWidth Largeur maximum que dois faire l'image destination (0=keep ratio)
- * @param newHeight Hauteur maximum que dois faire l'image destination (0=keep ratio)
- * @param src_x Position of croping image in source image (not use if mode=0)
- * @param 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
- image2wmp($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 file Path of source file to resize
- * @param maxWidth Largeur maximum que dois faire la miniature (-1=unchanged, 160 by default)
- * @param maxHeight Hauteur maximum que dois faire l'image (-1=unchanged, 120 by default)
- * @param extName Extension to differenciate thumb file name ('_small', '_mini')
- * @param quality Quality of compression (0=worst, 100=best)
- * @param outdir Directory where to store thumb
- * @param targetformat New format of target (1,2,3,4 or 0 to keep old format)
- * @return string Full path of thumb
- */
- 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 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 '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
- create_exdir($dirthumb);
- // Initialisation des variables selon l'extension de l'image
- switch($infoImg[2])
- {
- case 1: // Gif
- $img = imagecreatefromgif($fichier);
- $extImg = '.gif'; // Extension de l'image
- break;
- case 2: // Jpg
- $img = imagecreatefromjpeg($fichier);
- $extImg = '.jpg'; // Extension de l'image
- break;
- case 3: // Png
- $img = imagecreatefrompng($fichier);
- $extImg = '.png';
- break;
- case 4: // Bmp
- $img = imagecreatefromwbmp($fichier);
- $extImg = '.bmp';
- break;
- }
- // 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 == 1)
- {
- // 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 1: // Gif
- $trans_colour = imagecolorallocate($imgThumb, 255, 255, 255); // On procede autrement pour le format GIF
- imagecolortransparent($imgThumb,$trans_colour);
- $extImgTarget = '.gif';
- $newquality='NU';
- break;
- case 2: // Jpg
- $trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
- $extImgTarget = '.jpg';
- $newquality=$quality;
- break;
- case 3: // Png
- 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 4: // Bmp
- $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 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
- image2wmp($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;
- }
- /**
- * \brief This function returns the html for the moneymeter.
- * \param actualValue: amount of actual money
- * \param pendingValue: amount of money of pending memberships
- * \param intentValue: amount of intended money (that's without the amount of actual money)
- * \return 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 = $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 = $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 = $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;
- }
- ?>