Facebook
From Queen Goose, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 275
  1. <?php
  2.  
  3. class bannerGenerator
  4. {
  5.     function imagettftextCenter(&$im, $size, $angle, $x, $y, $color, $fontfile, $text)
  6.     {
  7.         $bbox = imagettfbbox($size, $angle, $fontfile, $text);
  8.         $dx = ($bbox[2]-$bbox[0])/2.0 - ($bbox[2]-$bbox[4])/2.0;
  9.         $dy = ($bbox[3]-$bbox[1])/2.0 + ($bbox[7]-$bbox[1])/2.0;
  10.         $px = $x-$dx;
  11.         $py = $y-$dy;
  12.            
  13.         return imagettftext($im, $size, $angle, $px, $py, $color, $fontfile, $text);
  14.     }
  15.    
  16.     function start($clientList, $channelList, $serverInfo, $config)
  17.     {
  18.         global $query;
  19.         global $instanceid;
  20.         global $instance;
  21.    
  22.     $date = date("d.m.Y", time());
  23.     $usersOnline = $serverInfo['virtualserver_clientsonline'] - $serverInfo['virtualserver_queryclientsonline'];
  24.     $time = date("H:i", time());
  25.     $serverConnections  = $serverInfo['virtualserver_client_connections'];
  26.     $channels = $serverInfo['virtualserver_channelsonline'];
  27.     $adminsOnline = 0;
  28.     $mOnline = 0;
  29.    
  30.     $record = file_get_contents('cache/onlineRecord');
  31.     $record = explode('/', $record);
  32.     $record = $record[0];
  33.        
  34.         foreach ($clientList as $client) {              
  35.                 $user_groups = explode(',',$client['client_servergroups']);
  36.                
  37.                 if ($instance->isInGroup($user_groups,$config[$instanceid]['functions']['bannerGenerator']['adminsGroups'])) {
  38.                     $adminsOnline++;
  39.                 }
  40.                 if ($instance->isInGroup($user_groups,$config[$instanceid]['functions']['bannerGenerator']['mGroups'])) {
  41.                     $mOnline++;
  42.                 }              
  43.         }
  44.    
  45.     $image = imagecreatefrompng($config[$instanceid]['functions']['bannerGenerator']['backgroundPath']);
  46.    
  47.     imagealphablending($image, true);
  48.    
  49.     $fontColors['white'] =  imagecolorallocate($image,255,255,255);
  50.     $fontColors['black'] =  imagecolorallocate($image,0,0,0);
  51.         $fontColors['red'] =  imagecolorallocate($image,231,76,60);
  52.         $fontColors['gold'] =  imagecolorallocate($image,255,192,61);
  53.  
  54.     $font = $config[$instanceid]['functions']['bannerGenerator']['fontPath'];
  55.    
  56.     $posCfg = $config[$instanceid]['functions']['bannerGenerator']['positions'];
  57.    
  58.     if($posCfg['onlineUsersCount']['enabled'])
  59.     {
  60.         $fontColor = $fontColors[$posCfg['onlineUsersCount']['fontColor']];
  61.         self::imagettftextCenter($image, $posCfg['onlineUsersCount']['fontSize'], 0, $posCfg['onlineUsersCount']['x'], $posCfg['onlineUsersCount']['y'], $fontColor, $font, $usersOnline);
  62.     }
  63.     if($posCfg['hour']['enabled'])
  64.     {
  65.         $fontColor = $fontColors[$posCfg['hour']['fontColor']];
  66.         self::imagettftextCenter($image, $posCfg['hour']['fontSize'], 0, $posCfg['hour']['x'], $posCfg['hour']['y'], $fontColor, $font, $time);
  67.     }
  68.     if($posCfg['channelsCount']['enabled'])
  69.     {
  70.         $fontColor = $fontColors[$posCfg['channelsCount']['fontColor']];
  71.         self::imagettftextCenter($image, $posCfg['channelsCount']['fontSize'], 0, $posCfg['channelsCount']['x'], $posCfg['channelsCount']['y'], $fontColor, $font, $channels);
  72.     }
  73.     if($posCfg['onlineAdminsCount']['enabled'])
  74.     {
  75.         $fontColor = $fontColors[$posCfg['onlineAdminsCount']['fontColor']];
  76.         self::imagettftextCenter($image, $posCfg['onlineAdminsCount']['fontSize'], 0, $posCfg['onlineAdminsCount']['x'], $posCfg['onlineAdminsCount']['y'], $fontColor, $font, $adminsOnline);
  77.     }
  78.     if($posCfg['onlinemCount']['enabled'])
  79.     {
  80.         $fontColor = $fontColors[$posCfg['onlinemCount']['fontColor']];
  81.         self::imagettftextCenter($image, $posCfg['onlinemCount']['fontSize'], 0, $posCfg['onlinemCount']['x'], $posCfg['onlinemCount']['y'], $fontColor, $font, $mOnline);
  82.     }  
  83.     if($posCfg['date']['enabled'])
  84.     {
  85.         $fontColor = $fontColors[$posCfg['date']['fontColor']];
  86.         self::imagettftextCenter($image, $posCfg['date']['fontSize'], 0, $posCfg['date']['x'], $posCfg['date']['y'], $fontColor, $font, $date);
  87.     }
  88.     if($posCfg['onlineRecord']['enabled'])
  89.     {
  90.         $fontColor = $fontColors[$posCfg['onlineRecord']['fontColor']];
  91.         self::imagettftextCenter($image, $posCfg['onlineRecord']['fontSize'], 0, $posCfg['onlineRecord']['x'], $posCfg['onlineRecord']['y'], $fontColor, $font, $record);  
  92.     }
  93.     if($posCfg['serverConnections']['enabled'])
  94.     {
  95.         $fontColor = $fontColors[$posCfg['serverConnections']['fontColor']];
  96.         self::imagettftextCenter($image, $posCfg['serverConnections']['fontSize'], 0, $posCfg['serverConnections']['x'], $posCfg['serverConnections']['y'], $fontColor, $font, $serverConnections);
  97.     }
  98.  
  99.     imagepng($image, $config[$instanceid]['functions']['bannerGenerator']['resultPath']);
  100.     imagedestroy($image);
  101.     }
  102. }
  103.  
  104. ?>