Dalexhd icon

group_online.php

Dalexhd | PRO | 10/25/17 08:38:13 AM UTC | 0 ⭐ | 384 👁️ | Never ⏰ | []
PHP |

2.89 KB

|

None

|

0 👍

/

0 👎

<?php
include_once 'include/config.php';
include_once 'include/ts3admin.class.php';
 
function group_online()
{
    global $query;
    global $config;
 
    $channels = $query->getElement('data', $query->channelList("-topic"));
 
    foreach($channels as $channel)
    {
        $check = strpos($channel['channel_topic'], "show_group=");
        if ($check !== false) 
        {
            $group_id = filter_var($channel['channel_topic'], FILTER_SANITIZE_NUMBER_INT);
            $group_name = getgroupname($group_id);
            
            $desc = '[center][size=15][b]'.$group_name.'[/b][/size][/center]\n\n';
            
            $groupsclients = $query->getElement('data', $query->serverGroupClientList($group_id, $names = true));
            $clients = $query->getElement('data', $query->clientList("-uid -groups -times -voice"));
 
            if (array_key_exists('client_nickname', $groupsclients[0]))
            {
                foreach($groupsclients as $groupclient)
                {
                    foreach($clients as $client)
                    {
                        if ($client['client_unique_identifier'] == $groupclient['client_unique_identifier'])
                        {
                            $online = true;
                            break;
                        }
                        else
                        {
                            $online = false;
                        }
                    }
 
                    if ($online)
                    {
                        $user_channel = $query->getElement('data', $query->channelInfo($client['cid']));
 
                        if( $client['client_input_muted'] != 0 || 
                            $client['client_output_muted'] != 0 ||
                            $client['client_idle_time'] > 15*60000)
                        {
                            $time = round($client['client_idle_time'] / 60000);
                            $status = '[color=#FFC000][b]AFK (od '.$time.' minut)[/b][/color]';
                        }
                        else
                        {
                            $status = '[color=green][b]ONLINE[/b][/color]';
                        }
 
                        $desc.= "[size=10][url=client://".$client['clid']."/".$groupclient['client_unique_identifier']."][b]".$groupclient['client_nickname']."[/b][/url] jest aktualnie ".$status." na kanale [B][URL=channelID://".$client['cid']."]".$user_channel['channel_name']."[/URL][/B][/size]\n";
                            
                    }
                    else
                    {
                        $info = $query->getElement('data', $query->clientDbInfo($groupclient['cldbid']));
                        $seconds = time() - $info['client_lastconnected'];
 
                        $days    = floor($seconds / 86400);
                        $hours   = floor(($seconds - ($days * 86400)) / 3600);
                        $minutes = floor(($seconds - ($days * 86400) - ($hours * 3600))/60);
                        $seconds = floor(($seconds - ($days * 86400) - ($hours * 3600) - ($minutes*60)));
                            
                        $desc.= '[size=10][url=client://' . $client['clid'] . '/' . $groupclient['client_unique_identifier'] . '][b]' . $groupclient['client_nickname'] . '[/b][/url] jest aktualnie [color=red][b]OFFLINE[/b][/color] od '.$days.' dni, '.$hours.' godzin i '.$minutes.' minut[/size]\n';
                        
                    }
                }
                $desc.= '[hr]\n';
            }
            else
            {
                $desc.= '[size=10][b]Brak![/b][/size]\n[hr]\n';
            }
            $query->channelEdit($channel['cid'], array(
                'channel_description' => $desc
            ));
        }
    }
 
    unset($query);
    unset($config);
}
 
?>

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎