Facebook
From Chunky Pheasant, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 412
  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.     $font = $config[$instanceid]['functions']['bannerGenerator']['fontPath'];
  50.         $fontColor = imagecolorallocate($image,$fontColor1);
  51.     $posCfg = $config[$instanceid]['functions']['bannerGenerator']['positions'];
  52.        
  53.     if($posCfg['onlineUsersCount']['enabled'])
  54.     {
  55.         $fontColor1 = $posCfg['onlineUsersCount']['fontColor'];
  56.         self::imagettftextCenter($image, $posCfg['onlineUsersCount']['fontSize'], 0, $posCfg['onlineUsersCount']['x'], $posCfg['onlineUsersCount']['y'], $fontColor, $font, $usersOnline);
  57.     }
  58.     if($posCfg['hour']['enabled'])
  59.     {
  60.         $fontColor1 = $posCfg['hour']['fontColor'];
  61.         self::imagettftextCenter($image, $posCfg['hour']['fontSize'], 0, $posCfg['hour']['x'], $posCfg['hour']['y'], $fontColor, $font, $time);
  62.     }
  63.     if($posCfg['channelsCount']['enabled'])
  64.     {
  65.         $fontColor1 = $posCfg['channelsCount']['fontColor'];
  66.         self::imagettftextCenter($image, $posCfg['channelsCount']['fontSize'], 0, $posCfg['channelsCount']['x'], $posCfg['channelsCount']['y'], $fontColor, $font, $channels);
  67.     }
  68.     if($posCfg['onlineAdminsCount']['enabled'])
  69.     {
  70.         $fontColor1 = $posCfg['onlineAdminsCount']['fontColor'];
  71.         self::imagettftextCenter($image, $posCfg['onlineAdminsCount']['fontSize'], 0, $posCfg['onlineAdminsCount']['x'], $posCfg['onlineAdminsCount']['y'], $fontColor, $font, $adminsOnline);
  72.     }
  73.     if($posCfg['onlinemCount']['enabled'])
  74.     {
  75.         $fontColor1 = $posCfg['onlinemCount']['fontColor'];
  76.         self::imagettftextCenter($image, $posCfg['onlinemCount']['fontSize'], 0, $posCfg['onlinemCount']['x'], $posCfg['onlinemCount']['y'], $fontColor, $font, $mOnline);
  77.     }  
  78.     if($posCfg['date']['enabled'])
  79.     {
  80.         $fontColor1 = $posCfg['date']['fontColor'];
  81.         self::imagettftextCenter($image, $posCfg['date']['fontSize'], 0, $posCfg['date']['x'], $posCfg['date']['y'], $fontColor, $font, $date);
  82.     }
  83.     if($posCfg['onlineRecord']['enabled'])
  84.     {
  85.         $fontColor1 = $posCfg['onlineRecord']['fontColor'];
  86.         self::imagettftextCenter($image, $posCfg['onlineRecord']['fontSize'], 0, $posCfg['onlineRecord']['x'], $posCfg['onlineRecord']['y'], $fontColor, $font, $record);  
  87.     }
  88.     if($posCfg['serverConnections']['enabled'])
  89.     {
  90.         $fontColor1 = $posCfg['serverConnections']['fontColor'];
  91.         self::imagettftextCenter($image, $posCfg['serverConnections']['fontSize'], 0, $posCfg['serverConnections']['x'], $posCfg['serverConnections']['y'], $fontColor, $font, $serverConnections);
  92.     }
  93.  
  94.     imagepng($image, $config[$instanceid]['functions']['bannerGenerator']['resultPath']);
  95.     imagedestroy($image);
  96.     }
  97. }
  98.  
  99. ?>