Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bluesystems: Dateimanager



Bluescreen
10.06.2007, 14:46
Hallo Community!
Ich möchte für mich eine Art Dateimanager, auf PHP basierend, entwickeln.
Ich bin bereits zu einigen Ergebnissen gekommen, die sich hier downloaden lassen: Blusystems: Dateimanager (http://bluescreenpage.bl.funpic.de/Dateimanager/)

Ich hatte gedacht, ihr könntet mich noch ein bisschen dabei unterstützen, es ist ja schließlich OpenSource!^^

http://bluescreenpage.bl.funpic.de/Dateimanager/dateimanagerscreen.gif

Probleme sind folgende:

Ist es möglich, das jede zweite Zeile in einer anderen (Hintergrund-)Farbe zu sehen ist?
Das die Checkbox auch aktiviert wird, wenn man auf die jeweilige Zeile klickt, und das sie dann eine andere Farbe bekommt?
Die "Buttons" ändern noch nicht ganz korrekt ihre Zustände, das Bild für "Angeklickt" zum Beispiel...


Wie findet ihr das Projekt, und könnt ihr mir helfen?

deadshox
10.06.2007, 15:01
Zu erstens: http://www.webmaster-resource.de/tricks/php/hintergrundfarbe-einer-tabellenzeile-abwechselnd-aendern.php

Hoffe das hilft dir weiter. ;]

Manni
10.06.2007, 15:06
Ist es möglich, das jede zweite Zeile in einer anderen (Hintergrund-)Farbe zu sehen ist?

Ja. Einfach aus
foreach ($Ordner as $Ordner)
foreach ($Ordner as $i => $Ordner) machen.

Wenn dann $i % 2 == 0 ist, kommt die eine Farbe ran, ansonsten die andere.


Das die Checkbox auch aktiviert wird, wenn man auf die jeweilige Zeile klickt, und das sie dann eine andere Farbe bekommt?

Dazu ist ein wenig Javascript nötig. Einfach bei onClick eine Funktion aufrufen, die dann die Checkbox und die Farbe ändert:


function row_toggle(id) {
checkbox = document.getElementById("cb"+d);
row = document.getElementById("row"+id);

checkbox.checked = !checkbox.checked;

if(checkbox.checked) {
row.className = 'active';
} else {
row.className = 'inactive';
}
}

Wenn du dann noch der Checkbox und der jeweiligen Tabellenzeile (<tr>) die entsprechenden IDs verpasst, sollte es klappen (Allerdings ist der Code nur aus der Erinnerung und ungetestet geschrieben :P).

Beispiel:

<table>
<tr id="row1">
<td onClick="row_toggle(1)"><input type="check" id="cb1"></td>
<td onClick="row_toggle(1)">Some text</td>
</tr>
</table>

Ach ja, und entsprechende Klassen musst du noch definieren...


Die "Buttons" ändern noch nicht ganz korrekt ihre Zustände, das Bild für "Angeklickt" zum Beispiel...

Benutz onMouseUp und onMouseDown ;)


Wie findet ihr das Projekt, und könnt ihr mir helfen?

Es sieht gut aus. Allerdings ist mir der Code zu deutschlastig :D
Und du machst für meinen Geschmack zu viel Gebrauch vom style-Attribut - verwende lieber Klassen...

Edit:

Zu erstens: http://www.webmaster-resource.de/tricks/php/hintergrundfarbe-einer-tabellenzeile-abwechselnd-aendern.php

Hoffe das hilft dir weiter. ;]

Das ist allerdings eine sehr unsaubere und unflexible Lösung.

Bluescreen
10.06.2007, 15:09
Zu erstens: http://www.webmaster-resource.de/tricks/php/hintergrundfarbe-einer-tabellenzeile-abwechselnd-aendern.php

Hoffe das hilft dir weiter. ;]
Hmmm, ich kanns jetzt nich probieren, aber ich glaube nicht dass es klappt.
Ich muss ja mit foreach arbeiten, da ich ein Array auslese.

Edit: Ups, da war ich zu langsam. Bitte Post noch ignorieren!!

Manni
10.06.2007, 15:18
Ich muss ja mit foreach arbeiten, da ich ein Array auslese.

Du kannst auch mit for arbeiten :D Es ist ja schließlich kein assoziatives Array... Das ist unter Umstaänden sogar performanter (Auch wenn foreach einfach bequemer ist)

Du könntest sogar mit while oder einer rekursiven Funktion arbeiten xD (In Kombination mit array_unshift())




Edit: Ups, da war ich zu langsam. Bitte Post noch ignorieren!!
Nö, das musste jetzt sein :P

Bluescreen
11.06.2007, 17:08
Also, das ganze hat mir bis jetzt sehr weitergeholfen.

Allerdings brauch ich noch unterstützung bei der Übergabe der Informationen, wenn jemand z.B. das Häckchen bei einer Datei aktiviert hat.
Wie kann ich diese Information übernehmen?

Ich meine, wenn ich per Foarch das Array $_POST ausgebe, kommt bspw. nur ein style1.cssSubmit raus. Wers probieren möchte: Downloads (http://bluescreenpage.bl.funpic.de/Dateimanager/)!

drunken monkey
11.06.2007, 17:48
Allerdings brauch ich noch unterstützung bei der Übergabe der Informationen, wenn jemand z.B. das Häckchen bei einer Datei aktiviert hat.
Wie kann ich diese Information übernehmen?
Wenn der Code für die Checkbox z.B. so aussieht:

<input type = "checkbox" name = "checkbox_file4" />
dann kannst du in PHP mit

isset($_POST['checkbox_file4']);
prüfen, ob es aktiviert wurde.


Außerdem würde ich bei dateityp.php statt den ganzen IF-ELSE-Dingern Arrays (oder evtl. ein einzelnes mehrdimensoinales) verwenden, das ist übersichtlicher und - wenn ich mich nicht irre - auch performanter. Eine Dateityp-Klasse wäre natürlich das stilistische Optimum, aber das ist schon wieder komplizierter. <___<''
Und substring() statt explode(), wenn du eh nur die Endung willst.

Hm, wo ist denn die Hauptseite in dem Downloadfile? o_O' Da gibt's nur index2.php, die $_POST ausgibt...

Manni
11.06.2007, 18:32
Du kannst aus den Checkboxen auch einen Array machen:

<input type="checkbox" name="files[]" value="fu.bar">
<input type="checkbox" name="files[]" value="fu2.bar">
<input type="checkbox" name="files[]" value="fu.bar2">
Wenn du die jetzt alle auswählst, bekommst du in PHP folgendes in $_POST['files']:

array("fu.bar", "fu2.bar", "fu.bar2")
Das ist eine sehr viel elegantere und sicherere Lösung und du kannst in das Formular auch gefahrlos noch andere Inputelemente einbauen. (Im Moment befindet sich der Button ja auch noch in deiner Dateiliste ;))

Edit: Ich glaube ich habe theoretisch einen Bug gefunden: Wenn das Änderungsdatum einer Datei denselben Tag aber einen anderen Monat/Jahr hat, wird kein Datum ausgegeben. Überprüf doch einfach "d.m.Y" statt jeden Teil einzeln...