# A minimalists file manager



## Neurodeamon (16. August 2006)

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


----------



## Dennis Wronka (16. August 2006)

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:

```
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.


----------



## Neurodeamon (16. August 2006)

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


----------



## Matthias Reitinger (16. August 2006)

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


----------



## Neurodeamon (16. August 2006)

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?


----------



## Sir Robin (18. August 2006)

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ß.


----------



## paddz (18. August 2006)

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


----------



## Neurodeamon (18. August 2006)

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!


----------



## Admi (18. August 2006)

Nice Idee. Gefällt mir sehr 

Würde ein View auch das Anzeigen von Grafiken realisieren?


----------



## Neurodeamon (18. August 2006)

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).


----------



## Neurodeamon (16. September 2006)

Der PHP File Manager macht langsam Fortschritte. Ich würde gerne den Code in nächster Zeit auf Sourceforge veröffentlichen. Wäre schön wenn sich jemand (erfahrenes) melden könnte der meinen Code prüfen würde. Am liebsten User die schon länger bei Tutorials dabei sind!

Ich bin kein Programmierer und werde sicherlich die eine oder andere unnütze Zeile geschrieben haben - außerdem sind meine Ansätze vielleicht gar nicht praktikabel und es gibt bessere Lösungen.

Damit der Thread hier nicht plötzlich wegen dieses Postings in die Jobsuche rutscht bleibe ich mal etwas wage 

*Der Fortschritt:*
- Mehrsprachigkeit über Sprachdateien (bisher deutsch, englisch)
- ziemlich klein (ca. 124 kb - incl. Grafiken (ca. 70 kb ohne Grafiken) (gepackt nur ca. 10 kb groß)
- xhml transitional
- über css-file läßt sich das Aussehen komplett ändern

*Momentan in Arbeit/Korrektur*
- Clipboard system (läuft über sessions – man kann beliebige Dateien aus beliebigen Ordnern in einen ausschneiden, kopieren, löschen, editieren (datei bearbeiten sowie zugriffsrechte von dateien/ordnern ändern) -> die Dateien landen zuerst im Clipboard.
- Überprüft ob der PHP User überhaupt die Berechtigung hat Dateien oder Ordner zu »manipulieren«

*Zukünftig*
- Auf Bugs, Sicherheit prüfen

Neuer Screen, siehe Anhang


----------



## Dennis Wronka (16. September 2006)

Ich waer auf jeden Fall mal interessiert Deinen Code zu durchwuehlen und mir das Ganze mal anzuschauen.
Hab zwar ein SQL-Wochenende geplant, aber zwischendurch zur Entspannung kann etwas PHP ja auch nicht schaden.


----------



## Sir Robin (16. September 2006)

ich guck auch gerne rein, auch wenn ich vielleicht nicht ganz der lange Tutorials.de User und außerdem verantwortlich für Dennis SQL-Wochende bin


----------



## Dennis Wronka (18. September 2006)

Bin bisher noch nicht zum testen gekommen, muss erstmal PHP neu kompilieren da mir momentan noch die Posix-Funktionen fehlen.
Werd das heute Abend mal in Angriff nehmen und Dir dann Rueckmeldung geben.
Hab schonmal einen ganz kurzen (aber wirklich nur ganz kurzen) Blick durch den Code geworfen und der sieht soweit erstmal ganz gut aus. Naeheres kommt dann auch heut Abend.


----------



## Neurodeamon (3. März 2007)

Ich möchte nur mal einen Statusbericht loslassen. Ich arbeite noch immer am PHP Dateimanager, den ich mittlerweile PHPFSM (PHP File System Manipulator) nenne.
Momentan arbeite ich am Code für die Sessions. Weil die Sessions nötig sind, folgen erst danach die Dateioperationen wie kopieren, verschieben, usw.
Da ich nicht so viel Zeit habe und alleine daran arbeite, werde ich wohl noch eine Weile brauchen, bis ein brauchbares Produkt dabei herauskommt ;-)


----------



## Dennis Wronka (5. März 2007)

Ah, gut.
Ich wollte schonmal gefragt haben ob Du da noch dran arbeitest.
Hatte mir ja damals mal eine Version angesehen und fand den FileManager schon recht vielversprechend.


----------



## speedyggg (11. April 2007)

Hallo ,

alles was ich so gelesen habe über dieses Script finde ich sehr interessant. Kann man dieses Script mal zum testen haben ?

Oder wird da nichts mehr  dran gemacht?

Gruß
Speedyggg


----------



## Neurodeamon (11. April 2007)

*Es lebt noch!*

Hi!

Kurzer Zwischenbericht:

Ich arbeite noch am File Manager, aber es ist leider etwas ins Stocken gekommen weil ich an einem Projekt arbeite um meinen Lebensunterhalt zu verdienen 

Zusätzlich sind mir ein paar kleine programmiertechnische Hürden in den Weg gekommen. Mir ist irgendwann klar geworden das es beim Ausschneiden und Kopieren keinen Sinn macht, wenn bestimmte Dateien und Ordner die sich innerhalb einer bereits gewählten übergeordneten Ordnerstruktur befinden.

Sprich: Wenn datei »xyz.txt« in Verzeichnis /ordner1/unterordner3 zum Ausschneiden oder kopieren markiert ist und Verzeichnis /ordner1/ auch, dann muss natürlich alles was in /ordner1/ ist, aus der Liste entfernt werden, da es sowieso kopiert wird, weil es sich in /ordner1/ befindet.

Ein weiteres Problem sind nicht funktionierende Sessions unter bestimmten Voraussetzungen (die mir noch nicht ganz klar sind).

Hier hakt es ein wenig, da ich wie bereits erwähnt eher der Gestalter und weniger der Programmierer bin und ich leider alleine am Projekt arbeite. Ich denke ich werde es in der nächsten Zeit unter sourceforge.net öffentlich machen um vielleicht mal etwas Hilfe zu bekommen (und damit neugierige mal schauen können) 

Bisher kann ich den Manager nur als halbfertiges »proof of concept« bezeichnen, da die tatsächlichen Aktionen noch nicht durchgeführt werden und ich über einiges noch nicht im klaren bin wie ich es umsetzen sollte.


----------



## ts230 (26. März 2008)

*Lebt es noch?*

Hi,
Ich wollte 1. Fragen,ob das Projekt überhaupt weiter gemacht wird, und wo kann ich den Quellcode herkriegen?Darf ich den für mein Forum an dem ich Arbeite Vielleicht benutzen?Ich hoffe,das es noch lebt


----------



## Neurodeamon (26. März 2008)

ts230 hat gesagt.:


> Hi,
> Ich wollte 1. Fragen,ob das Projekt überhaupt weiter gemacht wird, und wo kann ich den Quellcode herkriegen?Darf ich den für mein Forum an dem ich Arbeite Vielleicht benutzen?Ich hoffe,das es noch lebt



Es lebt noch, allerdings habe ich es in Stasis versetzen müssen 
Möglicherweise werde ich komplett neu beginnen müssen. Das schöne ist ja das man mit jedem Projekt lernt und sich später fragt wieso man bei vorigen Projekten so und nicht anders gearbeitet hat.
Ich werde den Quellcode bald bei Sourceforge oder Google Code hinterlassen und den Link dann hier posten :-(


----------



## ts230 (27. März 2008)

Gut,dann werde ich warten Müssen
Ich bin auch grade dabei,selbst ein Forum zu schreiben(wird Programmiert in PHP,JS u.CSS)


----------



## Neurodeamon (27. März 2008)

Siehe:
http://code.google.com/p/isara/


----------

