holeDaten($query);
$row = $_db->holeZeile();
header('Content-Type: application/pdf');
header('Content-Length: '.$row['groesse']);
header('Content-Disposition: attachment; filename="'.utf8_encode($row['name']).'"');
readfile(PFAD_DATEIEN.$row['systemname']);
exit;
}
$_seite = 64;
$erlaubt = pruefeRechte('s_dateien');
$_tmpl->assign('ueberschrift','Dateien');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
# benoetigte Funktionen und Klassen laden
require_once('class/dateien.inc.php');
$dat = new dateien($_db,$_tmpl,true);
$_tmpl->assign('dateisymbole',$_einst['dateisystem']['dateisymbole']);
$_tmpl->assign('klickaufdatei',$_einst['dateisystem']['klickaufdatei']);
$_tmpl->assign('root',in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte']));
if(isset($_GET['file']) and ctype_digit($_GET['file'])){
$_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:'';
$query = "SELECT d.id, DATE_FORMAT(angelegt,'%e. %M %Y - %H:%i') as angelegt, userid, CONCAT(nachname,', ',vorname) as username,
gruppenid, r.bezeichnung, DATE_FORMAT(letzteaenderung,'%e. %M %Y - %H:%i') as letzteaenderung,
rechte as originalrechte, dateiname as name, typ, systemname, groesse, verzeichnisid as verzeichnis, beschreibung
FROM ".DB_PREFIX."dateien as d, ".DB_PREFIX."mitglieder as m, ".DB_PREFIX."rechtegruppen as r
WHERE d.id = ".$_GET['file']." and m.id = d.userid and r.id = d.gruppenid";
$_db->holeDaten($query);
if($_db->ergebnis['anzahl'] != 1){
$_inh .= T_KEINDATENSATZ;
$_GET['aktion'] = '_dummy';
}
else{
$daten = $_db->holeZeile();
$daten['rechte'] = $dat->ermittleRechte($daten['originalrechte'], $daten['userid'], $daten['gruppenid']);
}
if($_db->ergebnis['anzahl'] == 1 and !$daten['rechte']['r']){
$_inh .= T_KEINZUGRIFF;
}
else{
switch($_GET['aktion']){
case '_dummy':
break;
case 'herunterladen':
$mime = isset($dat->dateitypen[$daten['typ']])?$dat->dateitypen[$daten['typ']][0]:'text/plain';
header('Content-Type: '.$mime);
header('Content-Length: '.$daten['groesse']);
header('Content-Disposition: attachment; filename="'.utf8_encode($daten['name']).'"');
readfile(PFAD_DATEIEN.$daten['systemname']);
exit;
case 'loeschen':
if(!$daten['rechte']['x']){
$_inh .= T_KEINZUGRIFF;
break;
}
if(!isset($_GET['sicher'])){
$_tmpl->assign('frage','Soll die Datei wirklich gelöscht werden?');
$_tmpl->assign('query','file='.$_GET['file'].'&aktion=loeschen');
$_tmpl->assign('neinquery','file='.$_GET['file']);
$_tmpl->assign('url', '/sonstiges/dateien.html');
$_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html').'
';
}
else{
unlink(PFAD_DATEIEN.$daten['systemname']);
$query = "DELETE FROM ".DB_PREFIX."dateien WHERE id = ".text_format($_GET['file'],'db')."";
$_db->fuehreQueryAus($query);
$qs = ($daten['verzeichnis']==0 or $daten['verzeichnis']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['verzeichnis'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Die Datei wurde erfolgreich gelöscht');
}
break;
case 'aendern':
if(!$daten['rechte']['w']){
$_inh .= T_KEINZUGRIFF;
break;
}
$dat->holeRechtegruppen(true);
$user = $dat->holeUser(true);
$dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini',false);
if(count($dateien) > 0){
$dateiersetzen = array();
foreach($dateien as $systemname => $row){
list($zeit,$userid,$originalname) = explode('|',$row,3);
if($userid != $_SESSION['user']['id'] and !in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])){
echo 'da';$_inh .= $userid;
continue;
}
$dateiersetzen[$systemname] = $originalname.' (vom '.date('d.m.Y, H:i',$zeit).(in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?'; Besitzer: '.$user[$userid].')':'');
}
$_tmpl->assign('dateiersetzen',$dateiersetzen);
}
if(isset($_POST['speichern'])){
$originaldaten = $daten;
$daten = $_POST+$daten;
$f = $dat->validiereDateidaten($daten, $originaldaten);
if(isset($_POST['dateiersetzen']) and $_POST['dateiersetzen'] != '-'){
if(!in_array($_POST['dateiersetzen'],array_keys($dateiersetzen))){
$f .= 'Auf die gewählte Datei hast du keinen Zugriff
';
}
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
if(isset($_POST['dateiersetzen']) and $_POST['dateiersetzen'] != '-'){
$daten['groesse'] = filesize(PFAD_TMP.$_POST['dateiersetzen']);
if(!copy(PFAD_TMP.$_POST['dateiersetzen'],PFAD_DATEIEN.$daten['systemname'])){
die('Die Datei konnte nicht kopiert werden.');
}
if(isset($_POST['tmpdateiloeschen'])){
if(file_exists(PFAD_TMP.$_POST['dateiersetzen'])){
unlink(PFAD_TMP.$_POST['dateiersetzen']);
}
unset($dateien[$_POST['dateiersetzen']]);
require_once('func/schreibe_ini_datei.inc.php');
schreibe_ini_datei(PFAD_INIDATEIEN.'dateien_tmp.ini',$dateien,false);
}
}
$dat->speichereDateidaten($originaldaten, $daten, 'update');
$qs = ($daten['verzeichnis']==0 or $daten['verzeichnis']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['verzeichnis'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Die Datei wurde geändert');
}
}
$_tmpl->assign('daten',$daten);
$typen = array();
foreach($dat->dateitypen as $endung => $row){
$typen[$endung] = $row[1];
}
$_tmpl->assign('typen',$typen);
$verzeichnisse = $dat->baueVerzeichnisListe();
$_tmpl->assign('keinerechte', $dat->holeVerzeichnisseMitFehlendenRechten(array_keys($verzeichnisse),'w'));
$_tmpl->assign('verzeichnisse',$verzeichnisse);
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-dateiformular.inc.html');
break;
default:
require_once('func/dateigroesse.inc.php');
$_tmpl->assign('daten',$daten);
$_tmpl->assign('typen',$dat->dateitypen);
$_tmpl->assign('verzeichnisbaum',$dat->holeVerzeichnisBaum($daten['verzeichnis'], $_db, true));
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-dateidetail.inc.html');
break;
} # Ende switch
}
}
elseif(isset($_GET['dir']) and ctype_digit($_GET['dir'])){
# Unterverzeichnis darstellen
$_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:'';
switch($_GET['aktion']){
case 'loeschen':
# Parentdir holen und pruefen ob Unterverzeichnise existiren
$query = "SELECT parentid, rechte, userid, gruppenid FROM ".DB_PREFIX."verzeichnisse WHERE id = '".text_format($_GET['dir'],'db')."'";
$_db->holeDaten($query);
if($_db->ergebnis['anzahl'] != 1){
$_tmpl->assign('fehler','das gewählte Verzeichnis existiert nicht');
break;
}
else{
$daten = $_db->holeZeile();
$rechte = $dat->ermittleRechte($daten['rechte'], $daten['userid'], $daten['gruppenid']);
if(!$rechte['x']){
$_inh .= T_KEINZUGRIFF;
break;
}
}
$query = "SELECT id FROM ".DB_PREFIX."verzeichnisse WHERE parentid = '".text_format($_GET['dir'],'db')."'";
$_db->holeDaten($query);
if($_db->ergebnis['anzahl'] != 0){
$_tmpl->assign('fehler','das gewählte Verzeichnis ist nicht leer');
break;
}
else{
$query = "SELECT id FROM ".DB_PREFIX."dateien WHERE verzeichnisid = '".text_format($_GET['dir'],'db')."'";
$_db->holeDaten($query);
if($_db->ergebnis['anzahl'] != 0){
$_tmpl->assign('fehler','das gewählte Verzeichnis ist nicht leer');
break;
}
}
if(!isset($_GET['sicher'])){
$_tmpl->assign('neinquery',($daten['parentid']==0?'':'dir='.$daten['parentid']));
$_tmpl->assign('frage','Soll das Verzeichnis wirklich gelöscht werden?');
$_tmpl->assign('url', '/sonstiges/dateien.html');
$_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html');
}
else{
$query = "DELETE FROM ".DB_PREFIX."verzeichnisse WHERE id = ".text_format($_GET['dir'],'db')."";
$_db->fuehreQueryAus($query);
$qs = ($daten['parentid']==0 or $daten['parentid']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['parentid'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Das Verzeichnis wurde erfolgreich gelöscht');
}
break;
case 'anlegen':
if(!ctype_digit($_GET['dir'])){
$_inh .= T_KEINDATENSATZ;
break;
}
$query = "SELECT rechte as originalrechte, userid, gruppenid, v.id, name, parentid
FROM ".DB_PREFIX."verzeichnisse as v WHERE v.id = ".$_GET['dir']."";
$_db->holeDaten($query);
if($_db->holeAnzahl() != 1){
$_inh .= T_KEINDATENSATZ;
break;
}
$parentdir = $_db->holeZeile();
$parentdir['rechte'] = $dat->ermittleRechte($parentdir['originalrechte'], $parentdir['userid'], $parentdir['gruppenid']);
if(!$parentdir['rechte']['w']){
$_inh .= T_KEINZUGRIFF;
break;
}
$parentdir['rootverzeichnis'] = $dat->ermittleVerzeichnisRoot($parentdir['id']);
$daten = array(
'id' => -1,
'originalrechte' => 'rwx------',
'userid' => $_SESSION['user']['id'],
'gruppenid' => ($parentdir['rootverzeichnis']==0?(in_array(2,$_SESSION['user']['rechtegruppen'])?2:3):5),
'name' => '',
'parentid' => $_GET['dir'],
'rechte' => array('r' => 1,'w' => 1,'x' => 1),
'rootverzeichnis' => $parentdir['rootverzeichnis']
);
# Daten ueberpruefen wenn Forumlar abgeschickt
if(isset($_POST['speichern'])){
$originaldaten = $daten;
$daten = $_POST+$daten;
$f = $dat->validiereVerzeichnisdaten($daten, $originaldaten);
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
$dat->speichereVerzeichnisdaten($originaldaten, $daten, 'insert');
$qs = ($daten['parentid']==0 or $daten['parentid']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['parentid'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Das Verzeichnis wurde angelegt');
}
}
# Verzeichnisbaum, Rechtegruppen und User holen und an Smarty uebergeben
$weglassen = in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?array():array(1);
$daten['rootverzeichnis'] = in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?0:$daten['rootverzeichnis'];
$verzeichnisse = $dat->baueVerzeichnisListe($daten['rootverzeichnis'],$weglassen);
$_tmpl->assign('keinerechte', $dat->holeVerzeichnisseMitFehlendenRechten(array_keys($verzeichnisse),'w'));
$_tmpl->assign('verzeichnisse',$verzeichnisse);
$dat->holeRechtegruppen(true);
$dat->holeUser(true);
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/64.verzeichnis-formular.inc.html');
break;
case 'aendern':
if(!ctype_digit($_GET['dir'])){
$_inh .= T_KEINDATENSATZ;
break;
}
$query = "SELECT rechte as originalrechte, userid, gruppenid, v.id, name, parentid
FROM ".DB_PREFIX."verzeichnisse as v WHERE v.id = ".$_GET['dir']."";
$_db->holeDaten($query);
if($_db->holeAnzahl() == 1){
$daten = $_db->holeZeile();
$daten['rechte'] = $dat->ermittleRechte($daten['originalrechte'], $daten['userid'], $daten['gruppenid']);
}
else{
$_inh .= T_KEINDATENSATZ;
break;
}
if(!$daten['rechte']['x'] and $daten['userid'] != $_SESSION['user']['id']){
$_inh .= T_KEINZUGRIFF;
break;
}
$daten['rootverzeichnis'] = $dat->ermittleVerzeichnisRoot($daten['id']);
# Daten ueberpruefen wenn Forumlar abgeschickt
if(isset($_POST['speichern'])){
$originaldaten = $daten;
$daten = $_POST+$daten;
$f = $dat->validiereVerzeichnisdaten($daten, $originaldaten);
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
$daten['id'] = $_GET['dir'];
$dat->speichereVerzeichnisdaten($originaldaten, $daten, 'update');
$qs = ($daten['parentid']==0 or $daten['parentid']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['parentid'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Das Verzeichnis wurde geändert');
}
}
# Verzeichnisbaum, Rechtegruppen und User holen und an Smarty uebergeben
$weglassen = in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?array():array(1);
$daten['rootverzeichnis'] = in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?0:$daten['rootverzeichnis'];
$verzeichnisse = $dat->baueVerzeichnisListe($daten['rootverzeichnis'],$weglassen);
$_tmpl->assign('keinerechte', $dat->holeVerzeichnisseMitFehlendenRechten(array_keys($verzeichnisse),'w'));
$_tmpl->assign('verzeichnisse',$verzeichnisse);
$dat->holeRechtegruppen(true);
$dat->holeUser(true);
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/64.verzeichnis-formular.inc.html');
break;
default:
# Uebergeordnetes Verzeichnis holen
$query = "SELECT rechte as originalrechte, userid, CONCAT(nachname, ', ', vorname) as username, gruppenid, v.id, name, parentid
FROM ".DB_PREFIX."verzeichnisse as v, ".DB_PREFIX."mitglieder as m
WHERE v.id = ".$_GET['dir']." AND v.userid = m.id";
$_db->holeDaten($query);
if($_db->holeAnzahl() == 1){
$row = $_db->holeZeile();
$row['rechte'] = $dat->ermittleRechte($row['originalrechte'], $row['userid'], $row['gruppenid']);
}
else{
$_inh .= T_KEINDATENSATZ;
break;
}
if(!$row['rechte']['r']){
$_inh .= T_KEINZUGRIFF;
break;
}
$_tmpl->assign('parentid',$row['parentid']);
$_tmpl->assign('verzeichnis',$row);
# Verzeichnisse holen
$query = "SELECT id, userid, gruppenid, rechte, name, parentid
FROM ".DB_PREFIX."verzeichnisse WHERE parentid = ".$_GET['dir']." ORDER BY name";
$_db->holeDaten($query);
$daten['v'] = $_db->ergebnis['daten'];
foreach($daten['v'] as $key => $row){
$daten['v'][$key]['rechte'] = $dat->ermittleRechte($row['rechte'], $row['userid'], $row['gruppenid']);
}
# Dateien holen
$query = "SELECT dateiname, rechte, userid, gruppenid, id, typ,
IF(LOCATE('\n',beschreibung)=0,beschreibung,SUBSTRING(beschreibung, 1,LOCATE('\n',beschreibung)-2)) as titel
FROM ".DB_PREFIX."dateien WHERE verzeichnisid = ".$_GET['dir']." ORDER BY dateiname";
$_db->holeDaten($query);
$daten['d'] = $_db->baueArray('*','#');
foreach($daten['d'] as $key => $row){
$daten['d'][$key]['rechte'] = $dat->ermittleRechte($row['rechte'], $row['userid'], $row['gruppenid']);
}
$_tmpl->assign('daten',$daten);
$_tmpl->assign('verzeichnisbaum',$dat->holeVerzeichnisBaum($_GET['dir'], true));
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-verzeichnis.inc.html');
break;
} # Ende switch
}
else{
$_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:'';
switch($_GET['aktion']){
case 'verschieben':
$dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini',false);
if(isset($dateien[$_GET['datei']])){
list($zeit,$userid,$originalname) = explode('|',$dateien[$_GET['datei']],3);
if($userid != $_SESSION['user']['id'] and !in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])){
$_tmpl->assign('fehler','Du hast keine Rechte um diese Datei zu verwenden');
break;
}
}
else{
$_tmpl->assign('fehler','Die gewählte Datei existiert nicht');
break;
}
$dat->holeRechtegruppen(true);
$user = $dat->holeUser(true);
$endung = substr($originalname,strrpos($originalname,'.')+1);
foreach($dat->anpassungen as $ziel => $quelle){
if(in_array($endung, $quelle)){
$endung = $ziel;
break;
}
}
$daten = array(
'tmpdateiloeschen' => 1,
'name' => $originalname,
'typ' => $endung,
'verzeichnis' => $_SESSION['user']['homeverzeichnis'],
'originalrechte' => 'rwx------',
'userid' => $_SESSION['user']['id'],
'gruppenid' => 5,
'rechte' => array('r' => 1,'w' => 1,'x' => 1),
'tmpdatei' => $originalname.' vom '.date('d.m.Y, H:i',$zeit).(in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?'; Besitzer: '.$user[$userid]:'')
);
if(isset($_POST['speichern'])){
$originaldaten = $daten;
$daten = $_POST+$daten;
$f = $dat->validiereDateidaten($daten, $originaldaten);
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
$daten['groesse'] = filesize(PFAD_TMP.$_GET['datei']);
$daten['systemname'] = $dat->generiereDateiname($daten['typ'], PFAD_DATEIEN);
if(!copy(PFAD_TMP.$_GET['datei'],PFAD_DATEIEN.$daten['systemname'])){
die('Die Datei konnte nicht kopiert werden.');
}
if(isset($_POST['tmpdateiloeschen'])){
if(file_exists(PFAD_TMP.$_GET['datei'])){
unlink(PFAD_TMP.$_GET['datei']);
}
unset($dateien[$_GET['datei']]);
require_once('func/schreibe_ini_datei.inc.php');
schreibe_ini_datei(PFAD_INIDATEIEN.'dateien_tmp.ini',$dateien,false);
}
$dat->speichereDateidaten($originaldaten, $daten, 'insert');
$qs = ($daten['verzeichnis']==0 or $daten['verzeichnis']==$_SESSION['user']['homeverzeichnis'])?'':'?dir='.$daten['verzeichnis'];
weiterleiten('/sonstiges/dateien.html'.$qs,'Die Datei wurde angelegt');
}
}
$_tmpl->assign('daten',$daten);
$typen = array();
foreach($dat->dateitypen as $endung => $row){
$typen[$endung] = $row[1];
}
$_tmpl->assign('typen',$typen);
$verzeichnisse = $dat->baueVerzeichnisListe();
$_tmpl->assign('keinerechte', $dat->holeVerzeichnisseMitFehlendenRechten(array_keys($verzeichnisse),'w'));
$_tmpl->assign('verzeichnisse',$verzeichnisse);
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-dateiformular.inc.html');
break;
case 'tmpdateiloeschen':
if(!isset($_GET['sicher'])){
$_tmpl->assign('frage','Soll die Datei wirklich gelöscht werden?');
$_tmpl->assign('url', '/sonstiges/dateien.html');
$_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html').'
';
}
else{
$dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini',false);
if(isset($dateien[$_GET['datei']])){
list(,$userid,) = explode('|',$dateien[$_GET['datei']],3);
if($userid == $_SESSION['user']['id'] or in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])){
if(file_exists(PFAD_TMP.$_GET['datei'])){
unlink(PFAD_TMP.$_GET['datei']);
}
unset($dateien[$_GET['datei']]);
require_once('func/schreibe_ini_datei.inc.php');
schreibe_ini_datei(PFAD_INIDATEIEN.'dateien_tmp.ini',$dateien,false);
weiterleiten('/sonstiges/dateien.html','Die Datei wurde gelöscht.');
}
}
}
break;
case 'upload':
if(isset($_POST['speichern']) and isset($_FILES)){
# Dateibehandlung
if($_FILES['datei']['size'] > TKSWIM_MAXDATEIGROESSE){
$_FILES['datei']['error'] = UPLOAD_ERR_INI_SIZE;
}
if($_FILES['datei']['error'] != UPLOAD_ERR_OK){
switch($_FILES['datei']['error']){
case UPLOAD_ERR_INI_SIZE: # Datei wegen upload_max_filesize zu gross
case UPLOAD_ERR_FORM_SIZE: # Datei wegen Angabe im HTML-Code zu gross
$fehler = 'Die Datei ist zu groß (max. '.(TKSWIM_MAXDATEIGROESSE/(1024*1024)).'MB).';
break;
case UPLOAD_ERR_PARTIAL:
$fehler = 'Die Datei wurde nicht vollständig hochgeladen.';
break;
case UPLOAD_ERR_NO_FILE:
$fehler = 'Es wurde keine Datei zum Hochladen ausgewählt.';
break;
default:
if(defined('UPLOAD_ERR_NO_TMP_DIR') and $_FILES['datei']['error'] == UPLOAD_ERR_NO_TMP_DIR){
$fehler = 'Es wurde keine temporär Verzeichnis gefunden.';
}
elseif(defined('UPLOAD_ERR_CANT_WRITE') and $_FILES['datei']['error'] == UPLOAD_ERR_NO_TMP_DIR){
$fehler = 'Die Datei konnte nicht auf die Festplatte geschrieben werden';
}
else{
$fehler = 'Es ist eine Fehler aufgetreten.';
}
break;
}
$_tmpl->assign('fehler',$fehler);
}
else{ # Datei wurde erfolgreich hochgeladen -> verschieben
$systemname = $dat->sichereUploadDatei();
$qs = ($_POST['anschliessend']=='weitere'?
'?aktion=upload':
($_POST['anschliessend']=='dateisystem'?
'?aktion=verschieben&datei='.$systemname:
''));
weiterleiten('/sonstiges/dateien.html'.$qs,'Die Datei wurde erfolgreich hochgeladen');
}
}
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-uploadformular.inc.html');
break;
default:
# Rootverzeichnis darstellen
# Home-Verzeichnis holen
$daten = array();
$query = "SELECT id, userid, name, parentid
FROM ".DB_PREFIX."verzeichnisse WHERE parentid = ".$_SESSION['user']['homeverzeichnis']."
ORDER BY name";
$_db->holeDaten($query);
$daten['home_v'] = $_db->baueArray('*','#');
$query = "SELECT dateiname, userid, id, typ,
IF(LOCATE('\n',beschreibung)=0,beschreibung,SUBSTRING(beschreibung, 1,LOCATE('\n',beschreibung)-2)) as titel
FROM ".DB_PREFIX."dateien WHERE verzeichnisid = ".$_SESSION['user']['homeverzeichnis']." ORDER BY dateiname";
$_db->holeDaten($query);
$daten['home_d'] = $_db->baueArray('*','#');
# allgemeines-Verzeichnis holen
$query = "SELECT id, userid, gruppenid, rechte, name, parentid
FROM ".DB_PREFIX."verzeichnisse
WHERE parentid = 0".(in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])?'':' AND id != 1')."
ORDER BY name";
$_db->holeDaten($query);
$daten['allg_v'] = $_db->baueArray('*','#');
foreach($daten['allg_v'] as $key => $row){
$daten['allg_v'][$key]['rechte'] = $dat->ermittleRechte($row['rechte'], $row['userid'], $row['gruppenid']);
}
$query = "SELECT dateiname, rechte, userid, gruppenid, id, typ,
IF(LOCATE('\n',beschreibung)=0,beschreibung,SUBSTRING(beschreibung, 1,LOCATE('\n',beschreibung)-2)) as titel
FROM ".DB_PREFIX."dateien WHERE verzeichnisid = 0 ORDER BY dateiname";
$_db->holeDaten($query);
$daten['allg_d'] = $_db->baueArray('*','#');
foreach($daten['allg_d'] as $key => $row){
$daten['allg_d'][$key]['rechte'] = $dat->ermittleRechte($row['rechte'], $row['userid'], $row['gruppenid']);
}
# hochgeladene Dateien
$daten['h'] = array();
$hgldat = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini');
foreach($hgldat as $systemname => $wert){
list($zeit,$userid,$originalname) = explode('|',$wert);
if($userid != $_SESSION['user']['id'] and !in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])){
continue;
}
else{
$daten['h'][] = array(
'systemname' => $systemname,
'zeit' => $zeit,
'userid' => $userid,
'originalname' => $originalname
);
}
}
if(in_array('s_dateien_rootzugriff',$_SESSION['user']['rechte'])){
$dat->holeUser(true);
}
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/64.dateien-index.inc.html');
break;
}
}
} # Ende Rechte-else, EOF
?>