TOP
' . "\n"; echo '
  • Home
  • ' . "\n"; foreach ($positions as $pos) { $full .= $pos; $full .= "/"; echo '
  • ' . format_dir($pos) . "
  • \n"; } echo " \n"; } } /**Datei ausgeben*/ function show_file () { $filename = get_filename(); $pos = strpos($filename,"."); if ($pos == false) { // Wenn keine Erweiterung, nimm txt an! $extension = ".txt"; } else { $extension = substr($filename,$pos); } if (is_txt_extension ($extension)) echo "
    \n";
    	if (file_exists ($filename))
    	{
    		readfile ($filename);
    	} else {
    		readfile ("standard.html");
    	}
    	if (is_txt_extension ($extension)) echo "\n
    "; if (basename($filename) == "images.html") { generate_images (dirname($filename)); } if (basename($filename) == "news.html") { generate_news (dirname($filename)); } if (basename($filename) == "references.html") { generate_references (dirname($filename)); } echo "\n"; } /**Gibt den Dateinamen aus*/ function show_file_name ($file, $fileselected) { $name = basename($file); $pos = strpos($name,"."); $isbin = false; if ($pos == false) { // Wenn keine Erweiterung, nimm txt an! $extension = ".txt"; $pre = $name; } else { $extension = substr($name,$pos); if ($extension == ".html" || $extension == ".txt") $pre = substr($name,0,$pos); else $pre = $name; } $dir = dirname ($file); echo '
  • ' , basename ($pre) , '
  • ', "\n"; else echo '"> ' , basename ($pre) , '', "\n"; } /**Gibt ein formatierten Namen einer Datei zurück. * "Ordner/4Datei" wird zu "Datei". Die erste Zahl * kann deshalb zum Sortieren von Dateien und Ordner * verwendet werden.*/ function format_dir ($entry) { $entry = basename($entry); if (ereg("[0-9]", $entry)) { $entry = substr($entry,1); } return $entry; } /** generate_menu erstellt eine Liste von Dateinamen. * Das Menü wird über 'show' erhalten. * * Bsp: www.text.org/index.php?show=Ordner * In diesem Beispiel würde Ordner verwendet werden * und alle enthaltenen Dateien im Menü dargestellt * werden. * * Aus den Dateiname wird der Pfad gewonnen. Wenn der * Dateiname bereits ein Verzeichnis ist, wird index.html * angenommen. Einzige Ausnahme ist das root Verzeichnis. * Dort wird about.html angzeigt, da es sonst zu Konflikte * mit dem Webserver kommen könnte, wenn index.html + * index.php vorhanden ist. */ function generate_menu () { $filename = get_filename(); $fileselected = basename ($filename); if ($fileselected == "news.html") $filename = dirname($filename); else if ($fileselected == "images.html") $filename = dirname($filename); else if ($fileselected == "references.html") $filename = dirname($filename); $pathname = dirname($filename); $dirs = array(); // Ein Array für die Verzeichnisse $files = array(); // Ein Array für Dateien $prevdirs = array(); // Ein Array für darüber liegende Verzeichnisse /********************************************************** *********** Verzeichnisse auslesen ************* **********************************************************/ $dir = dir($pathname); while ($entry = $dir->read()) { if ( $entry == "." || $entry == ".." || $entry == "banner" || $entry == "pic") continue; if ($pathname != ".") $entry = $pathname . "/" . $entry; if (is_dir($entry)) { $dirs[] = $entry; } else { $add=true; switch(basename($entry)) { case "index.html": case "greeting.html": case "title.txt": case "meta.html": $add=false; } if ($add) $files[] = $entry; } } $dir->close(); if ($pathname != ".") // keine vorige Ebene vorhanden { $pdir = dir(dirname($pathname)); while ($entry = $pdir->read()) { if ( $entry == "." || $entry == ".." || $entry == "banner" || $entry == "pic") continue; if (is_dir (dirname($pathname) . "/" . $entry)) $prevdirs[] = $entry; } $pdir->close(); } else { $prevdirs[] = $pathname; } sort($prevdirs); sort($dirs); sort($files); /********************************************************** *********** Home/Zurück ausgeben ************* **********************************************************/ if ($pathname == ".") // erste Ebene { echo '
  • Home
  • ', "\n"; } else if (dirname($pathname) == ".") // zweite Ebene { echo '
  • Home
  • ', "\n"; } else { // andere Ebene echo '
  • Zurück
  • ', "\n"; } /********************************************************** *********** Menüstruktur ausgeben ************* **********************************************************/ foreach ($prevdirs as $prevdir) { if (dirname($pathname) == ".") $prevdir = $prevdir; else $prevdir = dirname($pathname) . "/" . $prevdir; if (strcmp($prevdir, $pathname)) { echo '
  • ' , format_dir ($prevdir) , '
  • ' , "\n"; } else { if ($prevdir !=".") { echo '
  • ' , format_dir ($prevdir) , '
  • ' , "\n"; } if ($pathname != ".") echo '
  • ' . "\n"; } } } //ende function generate menu /**Generiert aus dem Ordner banner eine Bildervorschau * die rechts unten angezeigt wird. Eine gleichnamige .txt * Datei kann verwendet werden um einen Link für dieses * Bild zu bestimmen*/ function generate_banner() { $dir = dir("banner"); while ($entry = $dir->read()) { if ( $entry == '.'|| $entry == '..' || ereg (".txt$", $entry)) continue; echo ' '; echo '',$entry,''; echo "", "\n"; } $dir->close(); } /**Diese Funktion generiert Nachrichten. Damit erkannt wird, * dass es sich um einen Ordner mit Nachrichten handelt die * Datei news.html anlegen. Alle weiteren html Dateien werden * als Nachrichten betrachtet. * Sie werden je nach Erstellungsdatum sortiert*/ function generate_news($folder) { echo ""; $files = array(); $dir = dir("$folder"); while ($entry = $dir->read()) { if ( $entry == '.'|| $entry == '..' || $entry == "news.html") continue; $fullpath="$folder/$entry"; $mtime = filemtime ($fullpath); $f = array($fullpath => $mtime); $files = array_merge ($files, $f); } $dir->close(); arsort ($files, SORT_NUMERIC); foreach ($files as $entry => $time) { echo "\t".'' . "\n"; echo "\t\t".'\n\t\t". '\n\t\t\n"; echo "\t\n\t\t".'\n\t\n"; } echo "

    ' . ereg_replace(".html","",basename($entry)) . "

    ' . date ("F d Y H:i:s", $time) . "
    '."\n"; readfile ("$entry"); echo "\t\t
    "; } /**Generiert Bilder in einem Ordner. Damit erkannt * wird, dass dieser Ordner eine Bildervorschau * erstellen soll, muss eine Datei images.html * angelegt werden.*/ function generate_images($folder) { $files = array(); $dir = dir("$folder"); while ($entry = $dir->read()) { if ( $entry == '.'|| $entry == '..' || $entry == "images.html") continue; $fullpath="$folder/$entry"; $mtime = filemtime ($fullpath); $fullpath="/$fullpath"; $f = array($fullpath => $mtime); $files = array_merge ($files, $f); } $dir->close(); arsort ($files, SORT_NUMERIC); $num = -1; echo "\t\t"; echo "\t\t" . '' . "\n"; foreach ($files as $entry => $time) { if ($num++ == 2) { echo "\t\t\n\t\t" . '' . "\n"; $num = 0; } echo "\t\t\t\n"; } echo ""; echo "

    " . ereg_replace(".jpg","",basename($entry)) . "

    \n" . "\t\t\t

    " . date ("F d Y H:i:s", $time) . "

    \n"; echo "\t\t\t".'' . $entry . 
			''; echo "
    "; } /**Generiert Referenzen in einen Ordner. Dabei * werden Bilder dargestellt und rechts daneben * ist ein Begleittext.*/ function generate_references($folder) { $files = array(); $dir = dir("$folder"); while ($entry = $dir->read()) { if ( $entry == '.'|| $entry == '..' || ereg (".html$", $entry) || $entry == "references.html") continue; $fullpath="$folder/$entry"; $mtime = filemtime ($fullpath); $f = array($fullpath => $mtime); $files = array_merge ($files, $f); } $dir->close(); arsort ($files, SORT_NUMERIC); echo "\t\t"; foreach ($files as $entry => $time) { echo "\t\t".'' . "\n"; echo "\t\t\t\n"; echo "\t\t\t\n"; echo "\t\t\n"; } echo "\t\t
    "."\n"; echo "\t\t\t".''.$entry.''."\n"; echo "\t\t\t\n"; readfile ("$entry.html"); echo "\t\t\t
    \n"; } ?>