yllar
2006-12-11 df8e8ec9eee72743d0f14a8409aacf66c4a80d89
program/steps/mail/quotaimg.inc
@@ -21,9 +21,10 @@
$used  = ((isset($_GET['u']) && !empty($_GET['u'])) || $_GET['u']=='0')?(int)$_GET['u']:'??';
$quota = ((isset($_GET['q']) && !empty($_GET['q'])) || $_GET['q']=='0')?(int)$_GET['q']:'??';
$width = empty($_GET['w']) ? 100 : (int)$_GET['w'];
$height = empty($_GET['h']) ? 14 : (int)$_GET['h'];
function genQuota($used, $total)
function genQuota($used, $total, $width, $height)
{
   /**
    *   Quota Display
@@ -52,30 +53,28 @@
    **/
   $unknown = false;
   $border = true;
   $border = 0;
   $height = 15;
   $width = 102;
   $font = 2;
   $padding = 1;
   $padding = 0;
   $limit['high'] = 70;
   $limit['mid'] = 45;
   $limit['low'] = 0;
   // Fill Colors
   $color['fill']['high'] = '227, 23, 13';   // Near quota fill color
   $color['fill']['high'] = '215, 13, 13';   // Near quota fill color
   $color['fill']['mid'] = '126, 192, 238';// Mid-area of quota fill color
   $color['fill']['low'] = '50, 205, 50';   // Far from quota fill color
   $color['fill']['low'] = '147, 225, 100';   // Far from quota fill color
   // Background colors
   $color['bg']['OL'] = '238, 99, 99';      // Over limit bbackground
   $color['bg']['OL'] = '215, 13, 13';      // Over limit bbackground
   $color['bg']['Unknown'] = '238, 99, 99';// Unknown background
   $color['bg']['quota'] = '255, 255, 255';// Normal quota background
   // Misc. Colors
   $color['border'] = '0, 0, 0';
   $color['text'] = '0, 0, 0';
   $color['text'] = '102, 102, 102';
   /****************************
@@ -91,106 +90,83 @@
      $unknown = true; 
      }
   if($unknown)
      {
      $im = imagecreate($width, $height);
      list($r, $g, $b) = explode(',', $color['bg']['Unknown']);
      $background = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['text']);
      $text = imagecolorallocate($im, $r, $g, $b);
      if($border)
         {
         list($r, $g, $b) = explode(',', $color['border']);
         $border = imagecolorallocate($im, $r, $g, $b);
         imageline($im, 0, 0, $width, 0, $border);
         imageline($im, 0, $height-1, 0, 0, $border);
         imageline($im, $width-1, 0, $width-1, $height, $border);
         imageline($im, $width, $height-1, 0, $height-1, $border);
         }
      $string = 'Unknown';
      $mid = floor((100-(strlen($string)*imagefontwidth($font)))/2)+1;
      imagestring($im, $font, $mid, $padding, $string, $text);
      header('Content-type: image/gif');
      imagegif($im);
      imagedestroy($im);
      exit;
      }
   if($used > $total)
      {
      $im = imagecreate($width, $height);
      list($r, $g, $b) = explode(',', $color['bg']['OL']);
      $background = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['text']);
      $text = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['border']);
      $border = imagecolorallocate($im, $r, $g, $b);
      imageline($im, 0, 0, $width, 0, $border);
      imageline($im, 0, $height-1, 0, 0, $border);
      imageline($im, $width-1, 0, $width-1, $height, $border);
      imageline($im, $width, $height-1, 0, $height-1, $border);
      $string = 'Over Limit';
      $mid = floor((100-(strlen($string)*imagefontwidth($font)))/2)+1;
      imagestring($im, $font, $mid, $padding, $string, $text);
      header('Content-type: image/gif');
      imagegif($im);
      exit;
      }
   $quota = ($used==0)?0:(round($used/$total, 2)*100);
   $im = imagecreate($width, $height);
   list($r, $g, $b) = explode(',', $color['bg']['quota']);
   $background = imagecolorallocate($im, $r, $b, $g);
   list($r, $g, $b) = explode(',', $color['border']);
   $border = imagecolorallocate($im, $r, $g, $b);
   if($border)
      {
      list($r, $g, $b) = explode(',', $color['border']);
      $borderc = imagecolorallocate($im, $r, $g, $b);
      imageline($im, 0, 0, $width, 0, $borderc);
      imageline($im, 0, $height-$border, 0, 0, $borderc);
      imageline($im, $width-1, 0, $width-$border, $height, $borderc);
      imageline($im, $width, $height-$border, 0, $height-$border, $borderc);
      }
   list($r, $g, $b) = explode(',', $color['text']);
   $text = imagecolorallocate($im, $r, $g, $b);
   if($quota >= $limit['high'])
   if($unknown)
      {
      list($r, $g, $b) = explode(',', $color['fill']['high']);
      $fill = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['bg']['Unknown']);
      $background = imagecolorallocate($im, $r, $g, $b);
      imagefilledrectangle($im, 0, 0, $width, $height, $background);
      $string = 'Unknown';
      $mid = floor(($width-(strlen($string)*imagefontwidth($font)))/2)+1;
      imagestring($im, $font, $mid, $padding, $string, $text);
      }
   elseif($quota >= $limit['mid'])
   else if($used > $total)
      {
      list($r, $g, $b) = explode(',', $color['fill']['mid']);
      $fill = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['bg']['OL']);
      $background = imagecolorallocate($im, $r, $g, $b);
      imagefilledrectangle($im, 0, 0, $width, $height, $background);
      $string = 'Over Limit';
      $mid = floor(($width-(strlen($string)*imagefontwidth($font)))/2)+1;
      imagestring($im, $font, $mid, $padding, $string, $text);
      }
   else // if($quota >= $limit['low'])
   else
      {
      list($r, $g, $b) = explode(',', $color['fill']['low']);
      $fill = imagecolorallocate($im, $r, $g, $b);
      list($r, $g, $b) = explode(',', $color['bg']['quota']);
      $background = imagecolorallocate($im, $r, $b, $g);
      imagefilledrectangle($im, 0, 0, $width, $height, $background);
      $quota = ($used==0)?0:(round($used/$total, 2)*100);
      if($quota >= $limit['high'])
         {
         list($r, $g, $b) = explode(',', $color['fill']['high']);
         $fill = imagecolorallocate($im, $r, $g, $b);
         }
      elseif($quota >= $limit['mid'])
         {
         list($r, $g, $b) = explode(',', $color['fill']['mid']);
         $fill = imagecolorallocate($im, $r, $g, $b);
         }
      else // if($quota >= $limit['low'])
         {
         list($r, $g, $b) = explode(',', $color['fill']['low']);
         $fill = imagecolorallocate($im, $r, $g, $b);
         }
      $quota_width = $quota / 100 * $width;
      imagefilledrectangle($im, $border, 0, $quota, $height-2*$border, $fill);
      $string = $quota.'%';
      $mid = floor(($width-(strlen($string)*imagefontwidth($font)))/2)+1;
      imagestring($im, $font, $mid, $padding, $string, $text); // Print percent in black
      }
   imagefilledrectangle($im, 1, 0, $quota, $height-2, $fill);
   imageline($im, 0, 0, $width-2, 0, $border);
   imageline($im, $width-2, 0, $width-2, $height, $border);
   imageline($im, $width-2, $height-1, 0, $height-1, $border);
   imageline($im, 0, $height, 0, 0, $border);
   $string = $quota.'%';
   $mid = floor((100-(strlen($string)*imagefontwidth($font)))/2)+1;
   imagestring($im, $font, $mid, $padding, $string, $text); // Print percent in black
   header('Content-Type: image/gif');
    header("Expires: ".gmdate("D, d M Y H:i:s", mktime()+86400)." GMT");
   header("Cache-Control: ");
   header("Pragma: ");
   imagegif($im);
   imagedestroy($im);
}
genQuota($used, $quota);
genQuota($used, $quota, $width, $height);
exit;
?>