Hallo, ich habe eine Funktion gebaut, die mir alle Ordner und Datein ausliest, das klappt auch ohne Probleme, jedoch kann ich daraus kein "Explorer-Menu" machen, da sich die <div> überschneiden. Also habe ich daraus eine Klasse gebaut , wo alles in einem extra Div ist. Jedoch bricht meine Klasse ab bzw sie liest keine Datein in unterordnern aus und Ordner werden nur bis Ebene 2 gelesen.
So soll das ganze aussehen:
<div>
Ordner1
<div>
SubOrdner1
file1
</div>
Ordner2
</div>
somit kann ich dann mit JS eine Funktion bauen, die mir bei Klick auf Ordner1 den Sub-Inhalt anzeigt.
Hier meine Funktion die Funktioniert, jedoch wo so ein Klapp menu nicht realisiert werden kann(?)
Alles anzeigen
Hier ist nun meine Klasse, womit ein "Aufklapp-Menu" realisiert werden kann, die jedoch abbricht.
Alles anzeigen
Danke für die Hilfe.
so long JFoX
So soll das ganze aussehen:
<div>
Ordner1
<div>
SubOrdner1
file1
</div>
Ordner2
</div>
somit kann ich dann mit JS eine Funktion bauen, die mir bei Klick auf Ordner1 den Sub-Inhalt anzeigt.
Hier meine Funktion die Funktioniert, jedoch wo so ein Klapp menu nicht realisiert werden kann(?)
Quellcode
- function lese_verzeichnisse($ordner, $links = 50) {
- $verzeichnis = opendir(escapeshellcmd($ordner));
- while ($datei = readdir($verzeichnis))
- {
- if ($datei != "." && $datei != "..") {
- if (is_dir($ordner."/".$datei)) {
- echo '<span style="padding-left: '.$links.'px"><b><img
- src="/public/images/icons/folder.png">';
- echo '<a href="'.$ordner."/".$datei.'">'.$datei.'</a>';
- echo '</b></span><br />';
- lese_verzeichnisse($ordner."/".$datei, $links+20);
- } else {
- echo '<span style="padding-left: '.$links.'px"<img
- src="/public/images/icons/layers.png">';
- echo '<a href="'.$ordner."/".$datei.'">'.$datei.'</a>';
- echo '</span><br />';
- }
- }
- }
- closedir($verzeichnis);
- }
Hier ist nun meine Klasse, womit ein "Aufklapp-Menu" realisiert werden kann, die jedoch abbricht.
Quellcode
- <?php
- class ReadFolder
- {
- private $hqFolder;
- private $subFolder;
- private $fileFolder;
- private $hqLinks;
- private $subLinks;
- private $fileLinks;
- private $path;
- public function __construct($folder, $links = 50)
- {
- $this->hqFolder = $folder;
- $this->hqLinks = $links;
- $this->path = opendir(escapeshellcmd($this->hqFolder));
- self::getHq();
- }
- private function getHq ()
- {
- $path = opendir(escapeshellcmd($this->hqFolder));
- while ($datei = readdir($path)) {
- if ($datei != "." && $datei != ".." && $datei != ".htaccess") {
- if (is_dir($this->hqFolder ."/".$datei)) {
- echo "
- <div id=\"folder\" style=\"padding-left: ".$this->hqLinks."px;\">
- <table>
- <tr>
- <td><img src=\"/public/images/icons/folder.png\"></td>
- <td><a onclick=\"toggleDisplay(this, 'folder$folderUnique')\" href=\"#\">+ <b>$datei</b></a></td>
- </tr>
- </table>
- </div>";
- self::getSub($this->hqFolder."/".$datei, $this->hqLinks+20);
- } else {
- self::getFiles('hq');
- }
- }
- }
- }
- private function getSub($folder, $links)
- {
- $this->subLinks = $links;
- $this->subFolder = $folder;
- echo "<div id=\"folder\" style=\"padding-left: ".$this->subLinks."px;\">";
- $path = opendir(escapeshellcmd($this->subFolder));
- while ($datei = readdir($path)) {
- if ($datei != "." && $datei != ".." && $datei != ".htaccess") {
- if (is_dir($this->subFolder ."/".$datei)) {
- echo "
- <table>
- <tr>
- <td><img src=\"/public/images/icons/folder.png\"></td>
- <td><a onclick=\"toggleDisplay(this, 'file$folderUnique')\" href=\"#\">+ <b>$datei</b></a></td>
- </tr>
- </table>";
- } else {
- self::getFiles('sub');
- }
- }
- }
- echo "</div>";
- }
- private function getFiles($src)
- {
- switch (true) {
- case $src == 'hq':
- $this->fileFolder = $this->hqFolder;
- $this->fileLinks = $this->hqLinks+20;
- break;
- case $src == 'sub':
- $this->fileFolder = $this->subFolder;
- $this->fileLinks = $this->subLinks+20;
- break;
- }
- $this->fileLinks = $links;
- echo "<div id=\"folder$fileUnique\" style=\"padding-left: ".$this->fileLinks."px; display: block;\">";
- $path = opendir(escapeshellcmd($this->fileFolder));
- while ($datei = readdir($path)) {
- if ($datei != "." && $datei != ".." && $datei != ".htaccess") {
- if (!is_dir($this->hqFolder ."/".$datei)) {
- echo "
- <table>
- <tr>
- <td><img src=\"/public/images/icons/layers.png\"></td>
- <td><a href=\"$this->fileFolder/$datei\">$datei</a></td>
- </tr>
- </table>";
- }
- }
- }
- echo "</div>";
- }
- public function __destruct()
- {
- closedir($this->path);
- }
- }
Danke für die Hilfe.
so long JFoX
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
Klar ist es sinnvoll eine klasse zu verwenden, weil da noch mehr dahinter steckt