WebsiteBaker Community Forum

WebsiteBaker Support (2.13.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: red on March 21, 2023, 05:18:43 PM

Title: Verzeichnisstruktur abbilden
Post by: red on March 21, 2023, 05:18:43 PM
Ich möchte auf einer Unterseite meiner website-baker-Seite die Verzeichnisstruktur eines Ordners vom Server meiner website-baker-Installation mit den Dateien als anklickbaren links und anwählbaren Unterordnern veröffentlichen und schaffe es einfach nicht.  :cry: Gibt es dafür vielleicht ein fertiges Modul?

Vielen Dank!
Title: Re: Verzeichnisstruktur abbilden
Post by: crnogorac081 on March 21, 2023, 05:26:03 PM
Hello,
  You mean like a html sitemap ?
Where would you like to display this set of links ?
Title: Re: Verzeichnisstruktur abbilden
Post by: red on March 21, 2023, 05:36:04 PM
I would like to display the links to folders and files on a website baker page. I guess wysiwyg doesn´t help? So a module could or I could use code?
Title: Re: Verzeichnisstruktur abbilden
Post by: crnogorac081 on March 21, 2023, 06:25:33 PM
Do you mean something like this

http://www.websitebakers.com/pages/modules/listings/section-pages/sitemap.php
Title: Re: Verzeichnisstruktur abbilden
Post by: hgs on March 21, 2023, 08:11:50 PM
Als Verein können wir vor dieser Seite nur warnen.
In unserem addon-Bereich gibt es das Modul in der aktuellen Version
https://addon.WebsiteBaker.org/pages/en/browse-add-ons.php?id=0EB03F25
Title: Re: Verzeichnisstruktur abbilden
Post by: dbs on March 21, 2023, 08:16:00 PM
Es gab mal ein Modul Dirlist, das hätte dir sowas aufgelistet. Ist aber über 10 Jahre alt.
Title: Re: Verzeichnisstruktur abbilden
Post by: sternchen8875 on March 22, 2023, 02:30:09 AM
Hatte in den Sicherungen noch ein Droplet aus 2013. Angezeigt werden alle Dateien eines Ordners unterhalb vom Media-Verzeichnis.

Im oberen Teil, der die Dateien ausliest, mussten ein paar Pfade geändert werden, da es sich über die Jahre auch in WB geändert hat.

Am unteren Teil mit der Ausgabe in Tabellenform habe ich bis auf den Dateilink nichts geändert, aber ich denke, das läßt sich mit ein paar HTML-Kenntnissen an die persönlichen Bedürfnisse anpassen.

Translated with Deepl:
Still had a droplet from 2013 in the backups. All files of a folder below the media directory are displayed.

In the upper part, which reads the files, a few paths had to be changed, because it has also changed over the years in WB.

In the lower part with the output in table form I have changed nothing except for the file link, but I think that can be adapted with some HTML knowledge to the personal needs.


Als Verein können wir vor dieser Seite nur warnen.

ein alter Vorschlag aus dem Forum: vielleicht sollte man vieles davon aktualisieren und selbst anbieten
Title: Re: Verzeichnisstruktur abbilden
Post by: hgs on March 22, 2023, 07:35:47 AM

ein alter Vorschlag aus dem Forum: vielleicht sollte man vieles davon aktualisieren und selbst anbieten

Sehr gerne, alles was dem Codingstandard entspricht und von uns freigegeben wird, landet auch im Repro, versprochen.
Am liebsten dann auch in TWIG :)
Title: Re: Verzeichnisstruktur abbilden
Post by: red on March 22, 2023, 06:49:45 PM
Hatte in den Sicherungen noch ein Droplet aus 2013. Angezeigt werden alle Dateien eines Ordners unterhalb vom Media-Verzeichnis.

Im oberen Teil, der die Dateien ausliest, mussten ein paar Pfade geändert werden, da es sich über die Jahre auch in WB geändert hat.


Danke! Das sieht gut aus. Aber ich habe es noch nicht geschafft.

1 $sDirectory = WB_PATH.MEDIA_DIREC TORY.$path;
2 $sFileUrl = WB_URL.MEDIA_DIRECT ORY.$path;

Wie genau gebe ich bei 1 und 2 die entsprechenden Daten an?
Title: Re: Verzeichnisstruktur abbilden
Post by: sternchen8875 on March 22, 2023, 07:41:59 PM
Warum lesen alle Leute Dinge, die da nicht stehen? Nicht geschrieben wurden?

Es sind keinerlei Anpassungen notwendig, es sei denn, man mag keine Table (der untere Teil des Droplets)
Bei Aufruf des Droplets in einer Wysiwyg- oder Code bzw Code²-Section ist nur die Angabe des gewünschten Verzeichnisses nötig, das sich im media-Ordner befinden muß. Wird kein Verzeichnis angegeben, z.b. so [[DirList]] erscheinen die Dateien des Media-Verzeichnisses, aber keine anderen Verzeichnisse
Title: Re: Verzeichnisstruktur abbilden
Post by: dbs on March 22, 2023, 07:55:57 PM
Wollte gerade schreiben "bei mir gehts auch nicht".
Lieber nochmal in den Quelltext geschaut, wird alles aufgelistet, ist nur versteckt wegen .collapse (Bootstrap)  ;D
Das gilt für [[dirlist]]

Gebe ich einen Pfad an wirds nicht gefunden.
[[dirlist?path=PDFs]]
Code: [Select]
[9] DirectoryIterator::__construct(/var/www/.../mediaPDFs/): Failed to open directory: No such file or directory
Title: Re: Verzeichnisstruktur abbilden
Post by: sternchen8875 on March 22, 2023, 08:15:56 PM
mal so probiert?

[[dirlist?path=/mediaPDFs]]
Title: Re: Verzeichnisstruktur abbilden
Post by: dbs on March 22, 2023, 08:26:41 PM
du meinst [[dirlist?path=/PDFs]]
Inzwischen ja, ohne Erfolg.

Hier im Anhang mal das Modul Dirlist (notdürftig repariert).
Lies sich installieren, einstellen und nutzen.
Title: Re: Verzeichnisstruktur abbilden
Post by: sternchen8875 on March 23, 2023, 12:06:43 AM
ich versteh es nicht... funktioniert bei mir auf drei Servern mit unterschiedlichen PHP-Versionen, funktioniert bei Harald

durch die Testerei hat sich rausgestellt, das der Slash am Beginn des Ordners im Dropletaufruf zwingend ist, läßt sich aber auch noch abfangen.

Der Code im Droplet ist einfach zu verstehen, hier mal als Foto wegen der Zeilennummern

(https://i.gyazo.com/3e17c336f937df6c9b89007b23db42fd.png)

Zeile 1 fängt den Pfad ab, falls der mit dem Droplet nicht übergeben wird
Zeile 2 definiert das leere Array, das ab Zeile 11 mit den Inhalten des Ordners gefüllt wird
Zeile 5 hängt einen Slash an den Pfad
Zeile 6 definiert den Pfad, der dann in Zeile 9 verwendet wird
Zeile 7 wird für die URL der jeweiligen Datei benötigt, damit diese anklickbar ist
Zeile 9 ist eine PHP-Funktion, die ab PHP 5 läuft und in WB an diversen Stellen verwendet wird, z.b. im Droplet-Modul zum Auslesen der Dateien eines ZIP, in der Foldergallery zum Erstellen der Ordnerliste zur Auswahl der jeweiligen Gallery oder auch im News-Modul bei Modul-Upgrade, wenn die Dateien im posts-Ordner neu geschrieben werden.
Zeile 10 ist Beginn der Schleife zum Eintragen der File-Infos

Der Rest ist hier nicht von Belang, da das Modul auf Grund des "falschen" Pfades in Zeile 9 ja nicht weiterkommt.

Testcode für eine einfache Code-Section, Zeile 1 definiert den Pfad /media/path1/path2/PDFs, der Droplet-Aufruf wäre dann, dem Pfad entsprechend: [[dirlist?path=/path1/path2/PDFs]]
Zur Kontrolle wird oberhalb der Ausgabe der definierte Pfad angezeigt, der natürlich so existieren muß

Code: [Select]
$path = "/path1/path2/PDFs";
if (!isset($path)){ $path='';}
$file_array = array();

// add trailing slash if missing
if (substr($path, -1) != "/") $path .= "/";
$sDirectory = WB_PATH.MEDIA_DIRECTORY.$path;
$sFileUrl = WB_URL.MEDIA_DIRECTORY.$path;
echo "Dir : ".$sDirectory."<br>";
// open directory for reading
$d = new DirectoryIterator($sDirectory) or die("getFileList: Failed opening directory $path for reading");
foreach ($d as $fileinfo) {
// skip hidden files
if ($fileinfo->isDot()) continue;
// human readable filesizes
$precision = 2;
$units = array('B', 'KB', 'MB', 'GB', 'TB');
    $bytes = $fileinfo->getSize();
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
    $pow = min($pow, count($units) - 1);
$bytes /= pow(1024, $pow);

if (!$fileinfo->isDir()) {
            $file_array[] = array(
                    'name' => "{$fileinfo}",
                    'type' => ($fileinfo->getType() == "dir") ? "dir" : mime_content_type($fileinfo->getRealPath()),
                    'size' => round($bytes, $precision) . ' ' . $units[$pow],
                    'lastmod' => $fileinfo->getMTime()
            );
            }
}
print_r($file_array);



Title: Re: Verzeichnisstruktur abbilden
Post by: dbs on March 23, 2023, 07:55:57 AM
Alles gut, es funktioniert. Mein Fehler, in /PDFs waren nur 2 weitere Ordner.
Dein Code hier, das Droplet und das Modul zeigen gleiches gewünschtes Ergebnis.
(Nur importieren konnte ich das Droplet nicht, hat er einfach nicht übernommen.)
Title: Re: Verzeichnisstruktur abbilden
Post by: red on March 25, 2023, 04:02:11 PM
Danke für eure Hilfe. (Y)
Habe durch die Anregungen hier jetzt einen komfortablen Code, der mich von einem gewählten Medien-Verzeichnis ausgehend alle Unterverzeichnisse betreten lässt und den Inhalt dieser als links zur Verfügung stellt.
Das heißt, ich kann per drag and drop ein Verzeichnis kopieren und alle links werden automatisch generiert, das ist eine große Arbeitserleichterun g.
Also vielen Dank.