A minimalists file manager

Neurodeamon

Erfahrenes Mitglied
Ich arbeit momentan an einem PHP Dateimanager. Er soll so wenig Quellcode wie möglich haben und so viele Funktionen wie nötig. Naja und ein wenig bequem zu bedienen soll er dazu auch noch sein. (mit bisher ca. insgesamt 40 kb)

Bisher habe ich nur ein paar Zeilen JS (select all/deselect all checkboxes) verwendet und ansonsten nur PHP. Ich spiele mit dem Gedanken ein paar JS Funktionen einzubauen (ausschneiden, kopieren, einfügen, löschen). Ich könnte das Ganze natürlich auch in PHP umsetzen. Momentan tendiere ich zur JS/PHP/XML (ajax?) Lösung.

Würde gerne ein paar Ideen von außerhalb lesen. Man selbst steht seinen Ideen zu nahe um sie objektiv genug zu betrachten :)
 

Anhänge

  • 25715attachment.png
    25715attachment.png
    5,4 KB · Aufrufe: 2.059
Zuletzt bearbeitet:
Also vom Screenshot her sieht das ganze schonmal recht cool und vielversprechend aus.
Auf JavaScript wuerde ich dabei soweit wie es geht aber verzichten.
Da das ganze ja auf einem Webserver laeuft waeren eine Up- und Download-Funktion noch ganz gut. Evtl. sogar auch den Download ganzer Verzeichnisse, die koenntest Du ja zuvor in ein Archiv quetschen.
Ich seh da einen Button fuer neue Dateien, richtig? Dann waere evtl. auch ein minimalistischer Editor keine schlechte Idee, sodass man darueber z.B. direkt sein ChangeLog/seine ToDo-Liste/whatever anlegen und bearbeiten kann.

Das mit dem JavaScript koenntest Du ja auch optional machen.
Mal ein Loeschen-Link als Beispiel:
PHP:
echo '<a href="deletefile.php?file='.$filename.'" onclick="return deletefile(\''.$filename.'\');">';
Die JavaScript-Funktion ruft dann halt AJAX-maessig das Script im Hintergrund auf, laesst die Datei loeschen und gibt grundsaetzlich false zurueck. Dadurch wird dann der Link nicht ausgefuehrt. Wenn aber JavaScript deaktiviert ist wird onclick links liegen gelassen und ganz normal dem Link gefolgt.

Bin auf jeden Fall mal gespannt was da am Ende bei rumkommt. :)
 
Danke Dennis, wenn ich ein bisschen weiter kann ich ja mal den Quelltext rausrücken, der FM soll sowieso unter eine GPL-Lizenz.

Vielleicht sollte ich dazu erwähnen das der FM so ähnlich wie z. B. der Explorer (Win) oder Nautilus (Linux) funktionieren soll. Zumindest was das Ausschneiden/Kopieren/Einfügen von Dateien betrifft.
Beispiel: checkbox(en) auswählen -> Ausschneiden-/Kopieren-Button klicken -> in das Zielverzeichns wechseln und Einfügen-Button benutzen. Das bedeutet das zumindest eine Liste der Dateien (und des Verzeichnisses welches diese enthält) irgendwie übergeben werden soll. Das wäre mit sicherlich gut per Sessions/Cookies zu lösen.

Der Editor ist tatsächlich geplant, aber noch Zukunftsmusik. Ich habe die meisten Stunden über meinem Code gebrütet das er so sicher wie möglich ist (ohne zu komplex zu werden). Er erlaubt (bisher) keine Injections und keine Verzeichnisangaben mit "..".

Das Layout ist komplett mit HTML/CSS gestaltet - auch die Buttons (kleine Grafik, inset/outset und Einfärbung ist mit CSS gelöst).

Theoretisch müsste ich auch noch anpassungen vornehmen da das Anzeigen des Rechtesystems so nur unter *nixen funktioniert. Wobei mir gerade die chmod funktion für den FM einfällt, die ich noch einbauen möchte :)

Mann, wenn noch weiter Funktionen daherkommen muss ich einige Funktionen modularisieren ... :-D
Hmm, ich bin für Ideen immer offen :)
 
Zuletzt bearbeitet:
Hallo,

wenn JS, dann wenn möglich „Unobtrusive JavaScript“ – wie es Dennis ja schon angeschnitten hat (Bedienung sollte auch mit abgeschaltetem JavaScript möglich sein). Wenn du dir unnötige Fleißarbeit sparen willst, dann kann ich dir zu diesem Zweck das JavaScript-Framework Prototype empfehlen. Richtig eingesetzt macht es den JS-Quellcode wesentlich leichter les- und damit auch wartbarer. Ganz abgesehen davon, dass der Code i.d.R. auch schneller runtergetippt ist :) Eine gute (inoffizielle) Referenz zur aktuellen Version 1.4.0 sind die Developer Notes for prototype.js von Sergio Pereira.

Viel Erfolg,
Matthias
 
Ich habe mir nochmal die JS-Variante durch den Kopf gehen lassen. Nachdem ich ein wenig am Quellcode gebastelt habe, ist mir aufgefallen das es wesentlich aufwändiger wäre.
Also habe ich mich für die pure PHP-Variante entschieden.

Momentan ist erst mal das Dateieditieren drin, es soll noch ein simpler viewer (mit Zeilennummern und Codeeinfärbung) hinzukommen.
Kennt jemand von euch ein Script unter der GPL das man dafür nutzen könnte (man muss ja nicht alles nochmal »erfinden«).

Ich würde gerne eine option einbauen die die Ordnergröße angibt. Natürlich ist das langsamer, deshalb wäre es eine kleine Option in der config-inc.php für Mutige. Ist sowas nötig, was meint ihr?
 

Anhänge

  • 25727attachment.gif
    25727attachment.gif
    15 KB · Aufrufe: 608
Zuletzt bearbeitet:
Hi Neuro,

ich würde das mit der Ordnergröße erst auf Request machen, also so eine Art "Properties"-Dialog wie mans eben auch von den "richtigen" Filemanagern kennt. Die berechnen die Ordnergröße auch erst auf Anfrage.

Ansonsten gefällts mir ganz gut, sowas ähnliches habe ich mir auch im internen Einsatz, allerdings nichts für produktive Zwecke ;-) Bin mal gespannt auf den Code.

Zum Thema Syntax Highlight (falls du das mit der GPL meinst) ... im PEAR gibts die Klasse Text Highlighter ( http://pear.php.net/package/Text_Highlighter ). Es gab auch mal eine andere Lösung, aber mein poröses Hirn entsinnt sich gerade nicht wie es hieß.
 
hi,

also als syntax highlighter ist angeblich Geshi gut.

Hab irgendwo im Forum gelesen, das Tutorials.de das auch Verwendet(stimmt das?)

Also vieleicht is das das was du suchst.

Zum Thema Ordnergröße:
Ich finde Sir Robin hat recht. Eine Option z.B. in der Config die das einschaltet.
Das ist allerdings eine Funktion "nice to have" also würd ich erst andere Funktionen (Editor, View ...) schreiben.

MfG
paddz
 
Zuletzt bearbeitet:
Geshi, das war der Name der mir nicht mehr einfiel :)
Der ist unter der GPL, also genau mein Fall. PEAR fällt unter die PHP Lizenz, wenn ich mich richtig erinnere. Ist also nicht ganz mein Fall.

Ich habe von mehreren Seiten Interesse und Zuspruch erfahren. Wenn ich Zeit dazu finde eröffne ich das Projekt unter Sourceforge und machen den Quellcode verfügbar. Dann könnte jeder der möchte den Datei Manager ausprobieren und meinen Quellcode verbessern (wer meinen Quellcode kennt, weiß das ich manchmal ein wenig ausschweifend arbeite und in unnötig komplizierten Bahnen denke). Naja, ich bin ja auch kein Programmierer. Fühle mich nur manchmal dazu gezwungen selbst etwas zu machen, weil vorhandene Software meine Bedürfnisse nicht erfüllt *g*

Namenstechnisch bin ich noch unsicher:
NOFM is no Ordinary File Manager
AMFM - A Minimalists File Manager

(kling ein bissl nach Radio ;-) )
Vorschläge sind gerne gesehen!
 
Zuletzt bearbeitet:
Admi hat gesagt.:
Würde ein View auch das Anzeigen von Grafiken realisieren?
Das wäre wohl klüger als Text anzuzeigen :)

Ich brauche jedenfalls eine Weile das Projekt neu auszuarbeiten. Es sind so viele Ideen zusammengekommen das die ursprüngliche Idee gar nicht mehr realisierbar erscheint ohne alles neu aufzusetzen (muss theoretisch nur die Klassen ändern/erweitern).
 

Neue Beiträge

Zurück