.
*/
$ip='';
$error='';
$noerror='';
$count_del=0;
if(isset($_GET['cid']) AND isset($_GET['path']) AND !isset($_GET['getfile']))
{
$flist=$ts3->getElement('data', $ts3->ftGetFileList($_GET['cid'], '', $_GET['path']));
}
if(isset($_GET['getfile']) AND isset($_GET['cid']) AND isset($_GET['path']) AND isset($_GET['name']) AND isset($_GET['sid']))
{
session_start();
require_once('../ts3admin.class.php');
$ts3=new ts3admin($_SESSION['server_ip'], $_SESSION['server_tport']);
$ts3->connect();
$ts3->login($_SESSION['loginuser'], unserialize(base64_decode($_SESSION['loginpw'])));
$ts3->selectServer($_GET['sid'], 'serverId');
$ft=$ts3->ftInitDownload($_GET['path']."/".$_GET['name'], $_GET['cid']);
if($ft['success']===true or empty($ft['data']['port']))
{
$con_ft=@fsockopen($_SESSION['server_ip'], $ft['data']['port'], $errnum, $errstr, 10);
if($con_ft)
{
fputs($con_ft, $ft['data']['ftkey']);
$data='';
while (!feof($con_ft))
{
$data.= fgets($con_ft, 4096);
}
header('Content-Disposition: attachment; filename="'.$_GET['name'].'"');
header('Content-Type: x-type/subtype');
echo $data;
}
else
{
$error .= $lang['ftconerr']."
";
}
}
else
{
$error .= $lang['ftiniterr']."
";
}
}
// Automatischer Icon Download
if(isset($geticons) AND $geticons==1)
{
if(isset($_GET['ip']))
{
$ip=$_GET['ip'];
}
elseif(isset($_SESSION['server_ip']))
{
$ip=$_SESSION['server_ip'];
}
if(!isset($port))
{
$port=$whoami['virtualserver_port'];
}
$count=0;
$ft=$ts3->ftGetFileList(0, '', '/icons');
if(is_dir('icons/'.$ip.'-'.$port.'/'))
{
$handler=@opendir('icons/'.$ip.'-'.$port.'/');
}
else
{
if(@mkdir('icons/'.$ip.'-'.$port.'/', 0777))
{
$handler=@opendir('icons/'.$ip.'-'.$port.'/');
}
else
{
$error.=$lang['iconfoldererr']."
";
}
}
while($datei=readdir($handler))
{
$icon_arr[]=$datei;
}
$noIcon=0;
if(!empty($ft['data']))
{
foreach($ft['data'] AS $key2=>$value2)
{
$foundIcons[]=$value2['name'];
}
}
foreach($icon_arr AS $key=>$value)
{
if(!empty($ft['data']))
{
if($value!="." AND $value!=".." AND in_array($value, $foundIcons))
{
$noIcon=1;
break;
}
if($noIcon==0)
{
if(@unlink('icons/'.$ip.'-'.$port.'/'.$value))
{
$count_del++;
}
}
}
elseif(strpos($ft['errors'][0], 'ErrorID: 2568 | Message: insufficient client permissions failed_permid')===false)
{
if($value!="." AND $value!="..")
{
if(@unlink('icons/'.$ip.'-'.$port.'/'.$value))
{
$count_del++;
}
}
}
}
if(!empty($ft['data']))
{
foreach($ft['data'] AS $key=>$value)
{
if(substr($value['name'], 0, 5)=='icon_')
{
if(!in_array($value['name'], $icon_arr))
{
$count++;
$ft2=$ts3->ftInitDownload("/".$value['name'], 0);
if($ft2['success']!==false AND !empty($ft2['data']['port']))
{
$con_ft=@fsockopen($ip, $ft2['data']['port'], $errnum, $errstr, 10);
if($con_ft)
{
fputs($con_ft, $ft2['data']['ftkey']);
$data='';
while (!feof($con_ft))
{
$data.= fgets($con_ft, 4096);
}
$handler2=@fopen('icons/'.$ip.'-'.$port.'/'.$value['name'], "w+");
if($handler2!==false)
{
fwrite($handler2, $data);
fclose($handler2);
}
else
{
$error.=sprintf($lang['iconerr'], $ip, $port, $value['name'])."
";
break;
}
}
else
{
$error.= $lang['ftconerr']."
";
break;
}
}
else
{
$error.=$ft2['errors'][0]."
";
}
}
}
}
if($count!=0 AND empty($error))
{
$noerror .= sprintf($lang['countnewicon'], $count)."
";
}
}
if($count_del!=0)
{
$noerror .= sprintf($lang['countdelicon'], $count_del)."
";
}
}
?>