Verzeichnis-/Dateiliste im Downloadmodul verhält sich konfus

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
radium88
Beiträge: 25
Registriert: 26. Feb 2007, 14:54
Wohnort: Oberdorf (Baselland Schweiz)
Kontaktdaten:

Verzeichnis-/Dateiliste im Downloadmodul verhält sich konfus

Beitrag von radium88 »

Guten Abend Zusammen
Vorab, ein tolles Produkt habt ihr da entwickelt. Hut ab.
Ich habe es neu (Vers. 1.4.2) installiert und konfiguriert, soweit alles ok.
Nur verhält sich das Downloadmodul eigenartig.
Ich kann Folders eröffnen und Files uploaden. Die werden tatsächlich auf dem Server korrekt eingetragen. Die Dateiliste aber hat beträchtlich Mühe dies anzuzeigen.

-------------So sieht die Struktur real (auf dem Server) aus. ---------
-Download(dir)
----Vereinsakten(dir)
-------test1.xls
-------test2.xls
-------MitgliedAdr2007-1.xls
-------Statuten_Vers2002.pdf

Und so sieht die Anzeige für das Verz Vereinsakten aus ( . und .. sind nicht falsch abgeschrieben)
-------------------------------------------------------------------------
.
..
MitgliedAdr2007-1.xls 26.02.2007 41 kB
Statuten_Vers2002.pdf 26.02.2007 21 kB
-----------------------------------------------------------------------------

Die Dateien Test1 und 2 werden nicht angezeigt. Ich habe das mit viel mehr Dateien bzw. Verzeichnisen versucht, es werden immer 2 Files und 2 Verz. weniger angezeigt als vorhanden. Es werden auch immer die vorletzten 2 versteckt und tauchen bei weiterem hinzufügen wieder auf.
Kennt jemand diesen Sachverhalt?

Gruss Fredi

!!!!! Noch eine Ergänzung

In der Zwischenzeit habe ich eine Rolle und ein Benutzer eröffnet. Damit könnt ihr bei mir Live testen. Ihr könnt die Dateien und Verzeichnisse auch löschen und neu erstellen. So seht ihr am besten was ich meine. Wenns geht Bitte nur in diesem Bereich rumsurfen.

Benutzer "spez" Passwort "spez"

!!!!! Eine Aufzeichnung der Anzeigen
Vx steht für ein eröffnetes Verzeichnis
Fx steht für eine Upload Datei

Action Ergebnis
V1 ..
V2 . ..
V3 . .. V3
V4 . .. V1 V3
V5 . .. V1 V2 V3
V6 . .. V1 V2 V3 V5
V7 . .. V1 V2 V3 V4 V5
F1 . .. V1 V2 V3 V4 V5 F1
F2 . .. V1 V2 V3 V4 V5 F1 F2
F3 . .. V1 V2 V3 V4 V5 F1 F2 F3
F4 . .. V1 V2 V3 V4 V5 V7 F1 F2 F3
F5 . .. V1 V2 V3 V4 V5 V7 F1 F2 F3 F5
F6 . .. V1 V2 V3 V4 V5 V7 F1 F2 F3 F5 F6
F7 . .. V1 V2 V3 V4 V5 V7 F1 F2 F3 F5 F6 F7

Schon Eigenartig!
radium88
Beiträge: 25
Registriert: 26. Feb 2007, 14:54
Wohnort: Oberdorf (Baselland Schweiz)
Kontaktdaten:

Beitrag von radium88 »

Hallo Zusammen,

Nachdem ich den Fall analysiert habe und auch die Versionen 1.32 und 1.40 installiert habe, stellte ich fest, das alle Versionen auf meinem Server das gleiche anbieten.
Ich hatte mit PHP-Version 4.4.5 und 5.2.1 das gleiche Resultat. Nachdem ich mich überzeugt hatte, das mein Server sich richtig verhält musste der Fehler also im admidio liegen. Wunder tut mich nur dass es bei anderen Usern läuft.

Also, eine Testfunktion schrieben die mir die Variabeln anzeigt und an Schlüsselpositionen eingebaut. Siehe da, so findet man Fehler!

Nun Gut, zur Lösung:

Verzeichnis: adm_program/moduls/download

Modul: download.php ca Zeile 143 - 160

*******sieht so aus****************************
// Ordnerinhalt sortieren
$dh = opendir($act_folder);
while (false !== ($filename = readdir($dh)))
{
$ordnerarray[] = $filename;
}
$ordnerarray = array_slice ($ordnerarray,2);
if ($req_sort == "desc")
{
// Absteigend
rsort($ordnerarray);
}
else
{
// Aufsteigend
sort($ordnerarray);
};

*******soll so aussehen****************************
// Ordnerinhalt sortieren
$dh = opendir($act_folder);
while (false !== ($filename = readdir($dh)))
{
$ordnerarray[] = $filename;
}

if ($req_sort == "desc")
{
// Absteigend
rsort($ordnerarray);
}
else
{
// Aufsteigend
sort($ordnerarray);
};
$ordnerarray = array_slice ($ordnerarray,2);

*************************************************/

Also nur die array_slice Zeile nach dem Sort verschieben.

Warum? Beim auslesen des Directories werden ebenfalls die Einträge "." und ".." zurückgegeben. Die Funktion "array_slice($ordnerarray,2)" die fetcht zwei Elemente ab dem Array und anschliessend wird sortiert. Peng....

So, nun wird zuerst sortiert und anschliessend die zwei Elemente gefetcht.

Hat mich drei Tage Debugging gekostet. Finde aber Toll dass ich mit 32 Jahren EDV-Erfahrung das doch selber hingekriegt habe.

Vielen Dank für den Einsatz

Fredi

PS: Die TestRolle und den TestUser habe ich wieder Entfernt !
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi Fredi,

das ist schön, dass du den Fehler gefunden hast. Ich hatte mir das bei euch auch mal angeschaut, aber leider keine Idee gehabt, woran dies liegen könnte. Es ist auch immer schwer Fehler zu suchen/finden, die man selber nicht nachvollzogen bekommt.

So ist das Problem aber gelöst und wir werden es in der nächsten Version dann auch korrigiert haben.

Vielen Dank
Fasse
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Ich hab es gerade mal in unseren Sourcecode eingebaut, allerdings hab ich das Slice jetzt ganz rausgenommen. Das war etwas unschön und fehleranfällig. Jetzt werden einfach die . und .. Ordner garnicht erst in das Array geschrieben.

Also in der 1.4.3 wirds dann vernünftig laufen.
Antworten