', "\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.
*
* Hier ist neu, dass in Apache die RewriteEngine
* aktiviert sein muss:
* (folgende Zeilen in http.conf einfügen)
*------------ cut here -------------
* RewriteEngine on
* Options +FollowSymlinks
* RewriteCond %{REQUEST_URI} !\.(php|gif|jpg|png|gif|css|gz|asc|vcf).*
* RewriteRule ^/(.*) /index.php?show=$1
*------------ cut here -------------
*
* Bsp: www.example.com/Ordner
* wird zu (durch Rewrite):
* www.example.com/index.php?show=Ordner
*
* das nach show= wird dann php übergeben.
*
* 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" ||
$entry == "images" ||
$entry == ".svn")
continue;
if ($pathname != ".")
$entry = $pathname . "/" . $entry;
if (is_dir($entry))
{
$dirs[] = $entry;
} else
{
$add=true;
if (ereg (".png$", $entry))
$add=false;
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" ||
$entry == "images" ||
$entry == ".svn")
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 '
' , "\n";
}
if ($pathname == ".") continue; // in root keine Dateien anzeigen
foreach ($files as $file) show_file_name ($file, $fileselected);
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 == '..' ||
$entry == '.svn' ||
ereg (".txt$", $entry))
continue;
echo ' ';
echo '';
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 "