Download Modul Vers. X
Verfasst: Do 7. Feb 2008, 14:51
				
				Liebe Forum-User!
Anbei ein weiteres Downloadmodul mit folgenden Eigenschaften:
- Alphabetische Sortierung
- Anzeige Ordner
- Anzeige Symbolic Links
- Anzeige Dateien und Ordner auch mit Sonderzeichen
- Anzeige Filetyp und Größe
- 2 spaltiges Layout
Alle Elemente werden aus dem Dateisystem gelesen und in einem Array sortiert.
Input:
Output:
Die Icongifs sind die bereits bekannten aus den anderen Downloadmodulen...
			Anbei ein weiteres Downloadmodul mit folgenden Eigenschaften:
- Alphabetische Sortierung
- Anzeige Ordner
- Anzeige Symbolic Links
- Anzeige Dateien und Ordner auch mit Sonderzeichen
- Anzeige Filetyp und Größe
- 2 spaltiges Layout
Alle Elemente werden aus dem Dateisystem gelesen und in einem Array sortiert.
Input:
Code: Alles auswählen
?><?php
$cms_dirname = "CMS_VALUE[1]";
#Choose folder
echo '
<table cellpadding="0" cellspacing="0" border="0">
   <tr><td class="text_medium" style="padding:5px">
   Pfad, relativ zu DOCUMENT_ROOT '.$_SERVER[DOCUMENT_ROOT].'
   <input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]" style="width:200px">
    <input type="image" src="images/submit.gif">
   </td></tr>
</table>';
?><?phpCode: Alles auswählen
<?php
$dirname = "CMS_VALUE[1]";
$verzeichnisse = array();
$dateien = array();
$links= array();
$fileicon  = array(
                 ''    => 'upload/images/file.gif',
                 '*'    => 'upload/images/file.gif',
                 'bz2'  => 'upload/images/rarfile.gif',
                 'c'    => 'upload/images/cfile.gif',
                 'cpp'  => 'upload/images/cppfile.gif',
                 'doc'  => 'upload/images/docfile.gif',
                 'exe'  => 'upload/images/exefile.gif',
                 'h'    => 'upload/images/hfile.gif',
                 'htm'  => 'upload/images/htmfile.gif',
                 'html' => 'upload/images/htmfile.gif',
                 'gif'  => 'upload/images/imgfile.gif',
                 'gz'   => 'upload/images/zipfile.gif',
                 'jpg'  => 'upload/images/imgfile.gif',
                 'js'   => 'upload/images/jsfile.gif',
                 'm'    => 'upload/images/mfile.gif',
                 'mp3'  => 'upload/images/mpgfile.gif',
                 'mpg'  => 'upload/images/mpgfile.gif',
                 'pdf'  => 'upload/images/pdffile.gif',
                 'png'  => 'upload/images/imgfile.gif',
                 'ppt'  => 'upload/images/pptfile.gif',
                 'rar'  => 'upload/images/rarfile.gif',
                 'swf'  => 'upload/images/swffile.gif',
                 'txt'  => 'upload/images/txtfile.gif',
                 'xls'  => 'upload/images/xlsfile.gif',
                 'zip'  => 'upload/images/zipfile.gif',
                 'dir'  => 'upload/images/folder.gif',
                 'lnk'  => 'upload/images/lnkfile.gif'
                 );
$liste = '';
if ($_REQUEST['d'])
{
	$subdir = str_replace("..","",base64_decode(rawurldecode($_REQUEST['d'])));
	$dirname.= $subdir;     
}
if (is_dir($dirname)) 
//if ($dirname) 
{
	//Herkunft
	$subdir_path = '>> <a href="'.$_SERVER['PHP_SELF'] . '?idart=' . $_REQUEST['idart'] . '&idcat=' . $_REQUEST['idcat'] . '">Home </a>';
	if ($subdir)
	{
	$ptmp = explode("/", $subdir);
	$sp = array();
	foreach($ptmp as $item)
	{
		if ($item)
		{
			$sp[] = $item;
			$subdir_path.= ' - <a href="' . $_SERVER['PHP_SELF'] . '?idart=' . $_REQUEST['idart'] . '&idcat=' . $_REQUEST['idcat'] . '&d=' . rawurlencode(base64_encode('/' . implode('/', $sp))) . '">' . $item . '</a>';
		}
	}
	}
}	
	echo '
	<span style="margin: 10px 0px;">'.$subdir_path.'</span><br><br>
	<table width=100%>
	';
$lese_dir = opendir($dirname);
while($datei = readdir($lese_dir)) {
  if($datei != '..' && $datei != '.' && is_dir($dirname.'/'.$datei)) array_push($verzeichnisse, $datei);
}
closedir($lese_dir);
$lese_dir = opendir($dirname);
while($datei = readdir($lese_dir)) {
  if(is_file($dirname.'/'.$datei)) array_push($dateien, $datei);
  if(is_link($dirname.'/'.$datei)) array_push($links, $datei);
}
closedir($lese_dir);
natcasesort($verzeichnisse);
$verzeichnisse = array_values($verzeichnisse);
natcasesort($dateien);
$dateien = array_values($dateien);
natcasesort($links);
$links= array_values($links);
for($i=0; $i<sizeof($verzeichnisse); $i++) {
  $uri = $_SERVER['PHP_SELF'] . '?idart=' . $_REQUEST['idart'] . '&idcat=' . $_REQUEST['idcat'] . '&d=' . rawurlencode(base64_encode($subdir.'/'.$verzeichnisse[$i]));
  if ($i%2==0) {
  $liste .= '<tr><td><img src='.$fileicon[dir].' alt=icon></td><td width=48%><a href='.$uri.'>'.$verzeichnisse[$i].'</a></td>';} else {
  $liste .= '<td><img src='.$fileicon[dir].' alt=icon></td><td width=48%><a href='.$uri.'>'.$verzeichnisse[$i].'</a></td></tr>';}
  if ((($i+1)%2==1) AND (($i+1)==sizeof($verzeichnisse))) {
   $liste .= '<td> </td><td width=48%> </td></tr>';
  }
}
for($i=0; $i<sizeof($links); $i++) {
  if ($i%2==0){
  $liste .= '<tr><td><img src='.$fileicon[lnk].' alt=link></td><td width=48%><a href='.readlink($dirname.'/'.$links[$i]).' target=_blank>'.$links[$i].'</a></td>';}else {
  $liste .= '<td><img src='.$fileicon[lnk].' alt=link></td><td width=48%><a href='.readlink($dirname.'/'.$links[$i]).' target=_blank>'.$links[$i].'</a></td></tr>';}
  if ((($i+1)%2==1) AND (($i+1)==sizeof($links))) {
   $liste .= '<td> </td><td width=48%> </td></tr>';
  }
}
for($i=0; $i<sizeof($dateien); $i++) {
  $info = pathinfo($dirname.'/'.$dateien[$i]);
  $endung = $info['extension'];
  $groesse = filesize($dirname.'/'.$dateien[$i]);
  if($groesse < 1024) {
    $einheit = 'Byte';
  } else if($groesse >= 1024 && $groesse < 1048576) {
    $groesse = round($groesse / 1024);
    $einheit = 'KB';
  } else {
    $groesse = round($groesse / 1024 / 1024);
    $einheit = 'MB';
   }
  $groesse = number_format($groesse, 0, ',', '.');
  $affe = $dirname.'/'.$dateien[$i];
  $encoded = implode("/", array_map("rawurlencode", explode("/", $affe)));
  if ($i%2==0){
  $liste .= '<tr><td><img src='.$fileicon[$endung].'> </td><td width=48%><a href='.$encoded.' target=_new>'.htmlentities($dateien[$i]).'</a> ('.$groesse.' '.$einheit.')</td>';} else {
  $liste .= '<td><img src='.$fileicon[$endung].'> </td><td width=48%><a href='.$encoded.' target=_new>'.htmlentities($dateien[$i]).'</a> ('.$groesse.' '.$einheit.')</td></tr>';}
  if ((($i+1)%2==1) AND (($i+1)==sizeof($dateien))) {
   $liste .= '<td> </td><td width=48%> </td></tr>';
  } 
}
//echo '<table>';
echo $liste;
echo '</table>';
php?>