Single script Filemanager
misterunknown
- meinung
Moin,
ich arbeite schon seit geraumer Zeit an einem Filemanager und bin heute zu einem Stand gelangt, der IMHO zeigenswert ist. Es ist eine single script Lösung, das heißt jeglicher Code ist in einer Datei, was den Code ist für Außenstehende natürlich schwerer lesbar macht. Trotzdem würde ich mich freuen, wenn der eine oder andere etwas Zeit findet sich diesen anzusehen um Verbesserungsvorschläge und/oder Kritik anzubringen. Verwendete Sprachen sind PHP, HTML5, CSS und Javascript (jQuery).
Zum Besseren Verständnis möchte ich einige Hinweise geben. Das Skript stellt eine Client-Server-Lösung dar. Ohne (POST-)Parameter aufgerufen liefert es den "Client" aus, also ein HTML5-Markup, welches mit Javascript (jQuery, AJAX) verändert wird.
Am Anfang des Skripts gibt es ein Array, welches die Konfiguration darstellt (PHP).
Direkt danach folgt die API-Sektion in welcher per PHP ausgewertet wird, ob das Skript mit (POST-)Parametern aufgerufen wurde, und wenn ja wird die entsprechende Funktion aufgerufen. Kommuniziert wird zwischen dem Interface (HTML5, CSS, JS) und dem API (PHP) im JSON-Format.
Die zweite Sektion ist das Interface. Dort wird jQuery und jQueryUI eingebunden, als auch (sofern konfiguriert) CodeMirror. Danach wird das ifm-Objekt ausgeliefert, welches verschiedene Funktionen zum verändern des DOMs, Funktionen zur Kommunikation mit dem "Server" und einige Icons enthält. Außerdem sind einige Hilfsfunktionen vorhanden, die das Arbeiten leichter machen (z.B. pathCombine).
Die letzte Sektion bietet wieder einige PHP-Funktionen zur Sicherheit (überprüfen des Realpaths etc.), und auch einige Hilfsfunktionen, die ich aber der Lesbarkeit wegen ans Ende gesetzt habe. Dort wird auch jQuery, jQueryUI und CodeMirror vorgehalten.
Ich bin mir durchaus bewusst, dass es Nachteile hat, so viel Code in eine Datei zu packen. Dennoch denke ich, dass so eine Lösung seine Berechtigung hat. Ich würde mich wie gesagt über konstruktive Kritik und weitere Vorschläge freuen.
Quelltext Download (Zip-Archiv)
Grüße Marco