Thorsten Beuth: automatische Sitemap durch Verwendung der Verzeichnisstruktur

Hallo!

Ich habe mir selbst ein doch recht einfaches CMS selbst programmiert und nun nach einer Möglichkeit gesucht den Verzeichnisbaum, der als Menüführung im CMS genutzt wird, für eine automatische Sitemap zu entwerfen. Folgender Quellcode entstellt nun eine Sitemap. Die erste Funktion (make_tree) ist von Felix Riesterer, die Auswertung (umwandeln) ist von mir. Leider ist mir eine Explorer Gliederung nicht ganz geglückt, aber so siehts auch ganz passabel aus.

Viel Spaß mit dem Quellcode
Thorsten Beuth

<!--- Quellcode -->

<a href="?inc=./content/index.php">Startseite</a><br />

<?php
function make_tree($path, $mode)  // $mode steuert, ob nur Verzeichnisse,
      {                              // Dateien oder beides ausgelesen werden
      $list = array();             //  soll. Werte: "dir", "file", "all"
      $handle=opendir($path);            while($a=readdir($handle))
         {
         if(!preg_match('/^./',$a))
            {
                        $full_path="$path/$a";
                        switch($mode)
               {
               case "all": $list[]=$full_path; break;
               case "dir": if(is_dir($full_path)) $list[]=$full_path;  break;
               case "file": if(is_file($full_path)) $list[]=$full_path; break;
               }
            if(is_dir($full_path))
               {
               $recursive=make_tree($full_path, $mode, $i_tree);
               for($n=0; $n<count($recursive); $n++)
                  {
                  $list[]=$recursive[$n];
                  }
               }
            }
         }
      closedir($handle);

return $list;
    }

function umwandeln ($list) {

foreach ($list as $value) {
       $splitted = split ('/', $value);
       $count_split = count($splitted);
       $padding_left = 40*($count_split-1);
       $link[] = "<font style="padding-left:$padding_left">&#9492; <a href="?inc=./$value/index.php">".ucfirst($splitted[$count_split-1])."</a></font><br />\n";
   }
   return $link;
}

$baumliste = umwandeln (make_tree("content","dir"));

foreach ($baumliste as $value) {
   echo $value;
}
?>

  1. Lieber Thorsten,

    Leider ist mir eine Explorer Gliederung nicht ganz geglückt, aber so siehts auch ganz passabel aus.

    wie sieht Deine Lösung denn optisch aus? Habe jetzt keinen Link gefunden... ;-)

    Einen Explorer-Look kann man relativ leicht selbst per CSS herstellen. Schaue Dir doch dazu mal den Download-Ordner unserer Schul-HP an! Du findest im Quelltext alles, was Du brauchst.

    Wenn Du noch wissen willst, wie ich den HTML-Quellcode zusammenscripte, dann melde Dich doch wieder!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo Felix,

      Wie konnte ich es nur vergessen! ^^

      http://tossek.dsapage.de/dwa/index.php?inc=./content/sitemap/index.php

      wäre der Link zu einem Schaubeispiel. Dein Beispiel schau ich mir mal nach meiner Schlafperiode an.

      MfG
      Thorsten