. */ function create_tree($pid, $place, $alldata, $sid, $showicons) { global $lang; global $ts3; $gettree=''; if(!empty($alldata['channel'])) { foreach($alldata['channel'] AS $key=>$value) { if ($pid==$value['pid']) { $channelinfo = ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= ""; $channelinfo .= "
".str_replace("'", "\'", secure($value['channel_name']))."
".$lang['channelid']."".$value['cid']."
".$lang['pid']."".$value['pid']."
".$lang['chanorder']."".$value['channel_order']."
".$lang['clients']."".$value['total_clients']."/".($value['channel_maxclients']==-1 ? $alldata['server']['virtualserver_maxclients']:$value['channel_maxclients'])."
".$lang['familyclients']."".$value['total_clients_family']."/".($value['channel_maxfamilyclients']==-1 ? $alldata['server']['virtualserver_maxclients']:$value['channel_maxfamilyclients'])."
".$lang['topic']."".$value['channel_topic']."
".$lang['permanent']."".($value['channel_flag_permanent']==1 ? $lang['yes']:$lang['no'])."
".$lang['semipermanent']."".($value['channel_flag_semi_permanent']==1 ? $lang['yes']:$lang['no'])."
".$lang['default']."".($value['channel_flag_default']==1 ? $lang['yes']:$lang['no'])."
".$lang['password']."".($value['channel_flag_password']==1 ? $lang['yes']:$lang['no'])."
".$lang['codec']."".($value['channel_codec']==0 ? $lang['codec0']:($value['channel_codec']==1 ? $lang['codec1']:($value['channel_codec']==2 ? $lang['codec2']:($value['channel_codec']==3 ? $lang['codec3']:($value['channel_codec']==4 ? $lang['codec4']:($value['channel_codec']==5 ? $lang['codec5']:''))))))."
".$lang['codecquality']."".$value['channel_codec_quality']."
".$lang['neededtalkpower']."".$value['channel_needed_talk_power']."
".$lang['iconid']."".$value['channel_icon_id']."
"; $chan_img=''; if(preg_match("^\[(.*)spacer([\w\p{L}\d]+)?\]^u", $value['channel_name'], $treffer) AND $value['pid']==0 AND $value['channel_flag_permanent']==1) { $getspacer=explode($treffer[0], $value['channel_name']); $checkspacer=$getspacer[1][0].$getspacer[1][0].$getspacer[1][0]; if($treffer[1]=="*" or strlen($getspacer[1])==3 AND $checkspacer==$getspacer[1]) { $spacer=''; for($i=0; $i<=50; $i++) { if(strlen($spacer)<50) { $spacer.=$getspacer[1]; } else { break; } } $gettree .= "
".$spacer."
"; } elseif($treffer[1]=="c") { $spacer=explode($treffer[0], $value['channel_name']); $gettree .= "
".$spacer[1]."
"; } elseif($treffer[1]=="r") { $spacer=explode($treffer[0], $value['channel_name']); $gettree .= "
".$spacer[1]."
"; } else { $spacer=explode($treffer[0], $value['channel_name']); $gettree .= "
".$spacer[1]."
"; } } else { $chanmaxclient=($value['channel_maxclients']=="-1" ? $alldata['server']['virtualserver_maxclients']:$value['channel_maxclients']); if($value['channel_flag_password']==1) { $chan_img="\"\""; } if($value['channel_flag_default']==1) { $chan_img.="\"\""; } if($value['channel_codec']==3 OR $value['channel_codec']==5) { $chan_img.="\"\""; } if($value['channel_needed_talk_power']>0) { $chan_img.="\"\""; } if($value['channel_icon_id']!=0) { if($value['channel_icon_id']<0) { $value['channel_icon_id']=sprintf('%u', $value['channel_icon_id'] & 0xffffffff); } if($value['channel_icon_id']!=100 AND $value['channel_icon_id']!=200 AND $value['channel_icon_id']!=300 AND $value['channel_icon_id']!=500 AND $value['channel_icon_id']!=600) { if(file_exists('icons/'.$_SESSION['server_ip'].'-'.$alldata['server']['virtualserver_port'].'/icon_'.$value['channel_icon_id'])) { $chan_img.="\"\""; } } else { $chan_img.="\"\""; } } if($chanmaxclient<=$value['total_clients'] AND $value['channel_flag_password']==1) { $gettree .= "
".$place."
".secure($value['channel_name'])." 
".$chan_img."
\n"; } elseif($chanmaxclient<=$value['total_clients']) { $gettree .= "
".$place."
".secure($value['channel_name'])." 
".$chan_img."
\n"; } elseif($value['channel_flag_password']==1) { $gettree .= "
".$place."
".secure($value['channel_name'])." 
".$chan_img."
\n"; } else { $gettree .= "
".$place."
".secure($value['channel_name'])." 
".$chan_img."
\n"; } } if($value['total_clients']>=1) { if(!empty($alldata['clients'])) { foreach($alldata['clients'] AS $u_key=>$u_value) { if($value['cid'] == $u_value['cid'] AND $u_value['client_type']!="1") { $clientinfo = ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= ""; $clientinfo .= "
".str_replace("'", "\'", secure($u_value['client_nickname']))."
".$lang['clid']."".$u_value['clid']."
".$lang['channelid']."".$u_value['cid']."
".$lang['cldbid']."".$u_value['client_database_id']."
".$lang['uniqueid']."".$u_value['client_unique_identifier']."
".$lang['away']."".($u_value['client_away']==1 ? ($lang['yes']." ".$u_value['client_away_message']):$lang['no'])."
".$lang['version']."".$u_value['client_version']."
".$lang['platform']."".$u_value['client_platform']."
".$lang['talkpower']."".$u_value['client_talk_power']."
".$lang['idle']."".$ts3->convertSecondsToStrTime($u_value['client_idle_time']/1000)."
".$lang['lastonline']."".date("d.m.Y", $u_value['client_lastconnected'])."
".$lang['created']."".date("d.m.Y", $u_value['client_created'])."
".$lang['iconid']."".$u_value['client_icon_id']."
"; $u_away_msg=""; if($u_value['client_away']=="1") { $u_status="away"; if(!empty($u_value['client_away_message'])) { $u_away_msg="
(".secure($u_value['client_away_message']).")
"; } } elseif($u_value['client_output_hardware']=="0") { $u_status="hwhead"; } elseif($u_value['client_input_hardware']=="0") { $u_status="hwmic"; } elseif($u_value['client_output_muted']=="1") { $u_status="head"; } elseif($u_value['client_input_muted']=="1") { $u_status="mic"; } elseif($u_value['client_flag_talking']=="0" AND $u_value['client_is_channel_commander']=="1") { $u_status="player_command"; } elseif($u_value['client_flag_talking']=="1" AND $u_value['client_is_channel_commander']=="1") { $u_status="player_command_on"; } elseif($u_value['client_flag_talking']=="1") { $u_status="player_on"; } else { $u_status="player"; } $g_img=''; if(!empty($alldata['cgroups'])) { foreach($alldata['cgroups'] AS $key=>$cg_value) { if($cg_value['cgid']==$u_value['client_channel_group_id']) { $iconid=$cg_value['iconid']; if($iconid<0) { $iconid=sprintf('%u', $iconid & 0xffffffff); } if($iconid!=0) { if($iconid!=100 AND $iconid!=200 AND $iconid!=300 AND $iconid!=500 AND $iconid!=600) { if(file_exists('icons/'.$_SESSION['server_ip'].'-'.$alldata['server']['virtualserver_sid'].'/icon_'.$iconid)) { $g_img.="\"\""; } } else { $g_img.="\"\""; } } } } } $getsgroups=explode(',', trim($u_value['client_servergroups'])); if(!empty($alldata['sgroups'])) { foreach($alldata['sgroups'] AS $key=>$sg_value) { if(in_array($sg_value['sgid'], $getsgroups)) { $iconid=$sg_value['iconid']; if($iconid<0) { $iconid=sprintf('%u', $iconid & 0xffffffff); } if($iconid!=0) { if($iconid!=100 AND $iconid!=200 AND $iconid!=300 AND $iconid!=500 AND $iconid!=600) { if(file_exists('icons/'.$_SESSION['server_ip'].'-'.$alldata['server']['virtualserver_port'].'/icon_'.$iconid)) { $g_img.="\"\""; } } else { $g_img.="\"\""; } } } } } if($u_value['client_icon_id']!=0) { if($u_value['client_icon_id']<0) { $u_value['client_icon_id']=sprintf('%u', $u_value['client_icon_id'] & 0xffffffff); } if($u_value['client_icon_id']!=100 AND $u_value['client_icon_id']!=200 AND $u_value['client_icon_id']!=300 AND $u_value['client_icon_id']!=500 AND $u_value['client_icon_id']!=600) { if(file_exists('icons/'.$_SESSION['server_ip'].'-'.$alldata['server']['virtualserver_port'].'/icon_'.$u_value['client_icon_id'])) { $g_img.="\"\""; } } else { $g_img.="\"\""; } } if(!empty($u_value['client_country'])) { $g_img.="\"\""; } $gettree .= "
".$place."
 
".secure($u_value['client_nickname'])." 
".$g_img."
".$u_away_msg."
\n"; } } } } $gettree .= create_tree($value['cid'], $place."
", $alldata, $sid, $showicons); } } } return $gettree; } $tree=''; $geticons=1; include("site/filetransfer.php"); $alldata=array(); $alldata['server']=$ts3->getElement('data', $ts3->serverInfo()); $alldata['channel']=$ts3->getElement('data', $ts3->channelList("-topic -flags -voice -limits -icon")); $alldata['clients']=$ts3->getElement('data', $ts3->clientList("-uid -away -voice -times -groups -info -icon -country")); $alldata['sgroups']=$ts3->getElement('data', $ts3->serverGroupList()); $alldata['cgroups']=$ts3->getElement('data', $ts3->channelGroupList()); if(empty($alldata['server']) or empty($alldata['channel']) or empty($alldata['clients'])) { $tree="
Server Offline
"; } else { if($alldata['server']['virtualserver_icon_id']<0) { $alldata['server']['virtualserver_icon_id']=sprintf('%u', $alldata['server']['virtualserver_icon_id'] & 0xffffffff); } if($alldata['server']['virtualserver_icon_id']!=100 AND $alldata['server']['virtualserver_icon_id']!=200 AND $alldata['server']['virtualserver_icon_id']!=300 AND $alldata['server']['virtualserver_icon_id']!=500 AND $alldata['server']['virtualserver_icon_id']!=600) { $servericon=true; if(!file_exists('icons/'.$ip.'-'.$alldata['server']['virtualserver_port'].'/icon_'.$alldata['server']['virtualserver_icon_id'])) { $servericon=false; } } $tree.="
".secure($alldata['server']['virtualserver_name'])." 
".(($alldata['server']['virtualserver_icon_id']!=0) ? "\"\"":'')."
"; $tree.=create_tree(0, "
", $alldata, $sid, $showicons); } $smarty->assign("tree", $tree); ?>