- <?php
- class bannerGenerator
- {
- function imagettftextCenter(&$im, $size, $angle, $x, $y, $color, $fontfile, $text)
- {
- $bbox = imagettfbbox($size, $angle, $fontfile, $text);
- $dx = ($bbox[2]-$bbox[0])/2.0 - ($bbox[2]-$bbox[4])/2.0;
- $dy = ($bbox[3]-$bbox[1])/2.0 + ($bbox[7]-$bbox[1])/2.0;
- $px = $x-$dx;
- $py = $y-$dy;
- return imagettftext($im, $size, $angle, $px, $py, $color, $fontfile, $text);
- }
- function start($clientList, $channelList, $serverInfo, $config)
- {
- global $query;
- global $instanceid;
- global $instance;
- $date = date("d.m.Y", time());
- $usersOnline = $serverInfo['virtualserver_clientsonline'] - $serverInfo['virtualserver_queryclientsonline'];
- $time = date("H:i", time());
- $serverConnections = $serverInfo['virtualserver_client_connections'];
- $channels = $serverInfo['virtualserver_channelsonline'];
- $adminsOnline = 0;
- $mOnline = 0;
- $record = file_get_contents('cache/onlineRecord');
- $record = explode('/', $record);
- $record = $record[0];
- foreach ($clientList as $client) {
- $user_groups = explode(',',$client['client_servergroups']);
- if ($instance->isInGroup($user_groups,$config[$instanceid]['functions']['bannerGenerator']['adminsGroups'])) {
- $adminsOnline++;
- }
- if ($instance->isInGroup($user_groups,$config[$instanceid]['functions']['bannerGenerator']['mGroups'])) {
- $mOnline++;
- }
- }
- $image = imagecreatefrompng($config[$instanceid]['functions']['bannerGenerator']['backgroundPath']);
- imagealphablending($image, true);
- $font = $config[$instanceid]['functions']['bannerGenerator']['fontPath'];
- $fontColor = imagecolorallocate($image,$fontColor1);
- $posCfg = $config[$instanceid]['functions']['bannerGenerator']['positions'];
- if($posCfg['onlineUsersCount']['enabled'])
- {
- $fontColor1 = $posCfg['onlineUsersCount']['fontColor'];
- self::imagettftextCenter($image, $posCfg['onlineUsersCount']['fontSize'], 0, $posCfg['onlineUsersCount']['x'], $posCfg['onlineUsersCount']['y'], $fontColor, $font, $usersOnline);
- }
- if($posCfg['hour']['enabled'])
- {
- $fontColor1 = $posCfg['hour']['fontColor'];
- self::imagettftextCenter($image, $posCfg['hour']['fontSize'], 0, $posCfg['hour']['x'], $posCfg['hour']['y'], $fontColor, $font, $time);
- }
- if($posCfg['channelsCount']['enabled'])
- {
- $fontColor1 = $posCfg['channelsCount']['fontColor'];
- self::imagettftextCenter($image, $posCfg['channelsCount']['fontSize'], 0, $posCfg['channelsCount']['x'], $posCfg['channelsCount']['y'], $fontColor, $font, $channels);
- }
- if($posCfg['onlineAdminsCount']['enabled'])
- {
- $fontColor1 = $posCfg['onlineAdminsCount']['fontColor'];
- self::imagettftextCenter($image, $posCfg['onlineAdminsCount']['fontSize'], 0, $posCfg['onlineAdminsCount']['x'], $posCfg['onlineAdminsCount']['y'], $fontColor, $font, $adminsOnline);
- }
- if($posCfg['onlinemCount']['enabled'])
- {
- $fontColor1 = $posCfg['onlinemCount']['fontColor'];
- self::imagettftextCenter($image, $posCfg['onlinemCount']['fontSize'], 0, $posCfg['onlinemCount']['x'], $posCfg['onlinemCount']['y'], $fontColor, $font, $mOnline);
- }
- if($posCfg['date']['enabled'])
- {
- $fontColor1 = $posCfg['date']['fontColor'];
- self::imagettftextCenter($image, $posCfg['date']['fontSize'], 0, $posCfg['date']['x'], $posCfg['date']['y'], $fontColor, $font, $date);
- }
- if($posCfg['onlineRecord']['enabled'])
- {
- $fontColor1 = $posCfg['onlineRecord']['fontColor'];
- self::imagettftextCenter($image, $posCfg['onlineRecord']['fontSize'], 0, $posCfg['onlineRecord']['x'], $posCfg['onlineRecord']['y'], $fontColor, $font, $record);
- }
- if($posCfg['serverConnections']['enabled'])
- {
- $fontColor1 = $posCfg['serverConnections']['fontColor'];
- self::imagettftextCenter($image, $posCfg['serverConnections']['fontSize'], 0, $posCfg['serverConnections']['x'], $posCfg['serverConnections']['y'], $fontColor, $font, $serverConnections);
- }
- imagepng($image, $config[$instanceid]['functions']['bannerGenerator']['resultPath']);
- imagedestroy($image);
- }
- }
- ?>