[NEU] Filebrowser-Plugin hi_KCFinder

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by cmb » Mon Nov 14, 2011 1:46 pm

Hallo Frank,
kmsmei wrote:es dauert bei mir im Moment immer ein bischen
Kein Problem.

Vielen Dank für die PHP-Info. Die ist sehr aufschlussreich. SCRIPT_NAME bringt nämlich nichts. Nur SCRIPT_FILENAME enthält das wirkliche Verzeichnis. Aber wie und wo genau müsste das Problem behoben werden? Ich habe mir mal die aktuellste Version des kcfinder angesehen. Diese scheint UserDirs aber weiterhin zu ignorieren. Dann habe ich mal probiert, ob es klappt, wenn $_SESSION['KCFINDER']['uploadURL'] mit einem relativen Pfad versehen wird: das haut zumindest auf meinem XAMPP hin. Probier's einfach mal aus: in /plugins/hi_kcfinder/kcfinder_init.php, Zeile 41:

Code: Select all

        //$_SESSION['KCFINDER']['uploadURL'] = str_replace('index.php','',str_replace('/'.$sl.'/', '/', $sn)); // diese Zeile muss auskommentiert werden
        $_SESSION['KCFINDER']['uploadURL'] = '../../../'; // diese Zeile kommt neu dazu
 
Christoph
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by kmsmei » Tue Nov 15, 2011 3:05 pm

Hallo Christoph,

ich glaube, wir sind auf dem richtigen Pfad, wenn auch noch nicht am Ziel. Der Dump bringt jetzt folgendes:

array(2) { ["lang_active"]=> &string(2) "de" ["KCFINDER"]=> &array(17) { ["disabled"]=> bool(false) ["denyZipDownload"]=> bool(false) ["uploadURL"]=> string(9) "../../../" ["dirPerms"]=> int(493) ["filePerms"]=> int(420) ["deniedExts"]=> string(47) "exe com msi bat php phps phtml php3 php4 cgi pl" ["types"]=> array(3) { ["images"]=> string(4) "*img" ["downloads"]=> string(0) "" ["userfiles"]=> string(0) "" } ["mime_magic"]=> string(0) "" ["maxImageWidth"]=> string(1) "0" ["maxImageHeight"]=> string(1) "0" ["thumbWidth"]=> string(3) "100" ["thumbHeight"]=> string(3) "100" ["thumbsDir"]=> string(14) "images/.thumbs" ["jpegQuality"]=> string(2) "90" ["cookieDomain"]=> string(0) "" ["cookiePath"]=> string(0) "" ["cookiePrefix"]=> string(9) "KCFINDER_" } } string(71) "/export/htdocs/~kmsmei/elblandbiber/plugins/hi_kcfinder/kcfinder/images"

Das ist zwar noch nicht das Ziel (/export/autoren/kmsmei/www/elblandbiber/images), hat aber den Pfad als solchen verändert. Ich werde heute abend noch einmal ein wenig probieren.

Gruß Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by cmb » Tue Nov 15, 2011 3:38 pm

Hallo Frank,
kmsmei wrote:Der Dump bringt jetzt folgendes:
Oh ja. Ich habe mir den Code des kcfinders noch mal angeschaut, und auch bei relativen Pfaden versucht er, daraus eine absolute Pfadangabe zu machen -- allerdings wieder per DOCUMENT_ROOT, was ja bei UserDirs nicht hinhaut. Vermutlich ist die Lösung aber ganz einfach (hätte ich auch früher sehen können): dem kcfinder sollte die URL und das DIR separat übergeben werden. Das sieht (zumindest vereinfacht) in /plugins/hi_kcfinder/hi_kcfinder_init.php dann so aus:

Code: Select all

        $_SESSION['KCFINDER']['uploadURL'] = str_replace('index.php','',str_replace('/'.$sl.'/', '/', $sn)); // vielleicht doch wieder als absolute URL?
        $_SESSION['KCFINDER']['uploadDir']=dirname($_SERVER['SCRIPT_FILENAME']); // diese Zeile ist neu
 
Das sollte in Deinem Fall schon ausreichen. Für mehrsprachige Installationen müsste dann wohl noch das language-Verzeichnis raus gefiltert werden (wie in der ersten Zeile durch das 2. str_replace()). Und die 2. Zeile ist wohl nur nötig, falls SCRIPT_NAME nicht in SCRIPT_FILENAME enthalten ist.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by kmsmei » Tue Nov 15, 2011 7:58 pm

Hallo Christoph,

danke, das hat mächtig was gebracht. Ich sehe jetzt den Dialog, beide Fenster bleiben aber mit "Lade Ordner ..." / "Lade Dateien ..." stehen. Uploads werden verweigert mit dem Hinweis "Kann nicht in den upload Ordner schreiben."

Der Dump sieht jetzt so aus (für den Image-Ordner):

array(2) { ["lang_active"]=> &string(2) "de" ["KCFINDER"]=> &array(18) { ["disabled"]=> bool(false) ["denyZipDownload"]=> bool(false) ["uploadURL"]=> string(22) "/~kmsmei/elblandbiber/" ["uploadDir"]=> string(39) "/export/autoren/kmsmei/www/elblandbiber" ["dirPerms"]=> int(493) ["filePerms"]=> int(420) ["deniedExts"]=> string(47) "exe com msi bat php phps phtml php3 php4 cgi pl" ["types"]=> array(3) { ["images"]=> string(4) "*img" ["downloads"]=> string(0) "" ["userfiles"]=> string(0) "" } ["mime_magic"]=> string(0) "" ["maxImageWidth"]=> string(1) "0" ["maxImageHeight"]=> string(1) "0" ["thumbWidth"]=> string(3) "100" ["thumbHeight"]=> string(3) "100" ["thumbsDir"]=> string(14) "images/.thumbs" ["jpegQuality"]=> string(2) "90" ["cookieDomain"]=> string(0) "" ["cookiePath"]=> string(0) "" ["cookiePrefix"]=> string(9) "KCFINDER_" } }

Sieht fast so aus, als ob die Vervollständigung des Pfades noch nicht 100% ist.

Andererseits zeigt der Quelltext des eingebundenen Frames aus meiner Sicht vernünftige Pfade:

array(2) {
...
["uploadURL"]=>
string(22) "/~kmsmei/elblandbiber/"
["uploadDir"]=>
string(39) "/export/autoren/kmsmei/www/elblandbiber"
["dirPerms"]=>
int(493)
["filePerms"]=>
int(420)
["deniedExts"]=>
string(47) "exe com msi bat php phps phtml php3 php4 cgi pl"
["types"]=>
...
["thumbsDir"]=>
string(14) "images/.thumbs"
...
browser.dir = "images";
browser.uploadURL = "/~kmsmei/elblandbiber";
browser.thumbsURL = browser.uploadURL + "/images/.thumbs";
_.kuki.domain = "www.sn.schule.de";
_.kuki.path = "/";
_.kuki.prefix = "KCFINDER_";

Den .thumbs im image-Verzeichnis habe ich kontrolliert, er ist da und hat 777.

Gruß Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by cmb » Tue Nov 15, 2011 10:47 pm

Hallo Frank,

nun wird das 2. var_dump() anscheinend nicht mehr ausgeführt, so dass nicht zu sehen ist, welchen Wert $this->typeDir da hat. Ich vermute aber, dass es der richtige ist. Sicherheitshalber sollte aber vielleicht die neue Zeile in kcfinder_init.php lauten:

Code: Select all

$_SESSION['KCFINDER']['uploadDir']=dirname($_SERVER['SCRIPT_FILENAME']).'/'; 
Also noch ein / am Ende angefügt werden.
kmsmei wrote:Ich sehe jetzt den Dialog, beide Fenster bleiben aber mit "Lade Ordner ..." / "Lade Dateien ..." stehen. Uploads werden verweigert mit dem Hinweis "Kann nicht in den upload Ordner schreiben."
Das passiert bei mir auch, wenn ich die var_dump()s nicht entferne oder auskommentiere. Vielleicht liegt es nur daran.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by kmsmei » Wed Nov 16, 2011 10:23 pm

Hallo Christoph,

also alles zurück zum Original Hi_KCFinder um erst einmal alle Änderungen zu eliminieren, dann die beiden Zeilen in der kcfinder_init.php anpassen/einfügen und schauen.

Das sieht jetzt richtig gut aus: :)
Downloads getestet: Files anzeigen / hochladen alles i.O.
Userfiles getestet: Files anzeigen / hochladen alles i.O.
Bilder getestet: :? "Unbekannter Fehler in den Fenstern, "Kann nicht in den Upload-Ordner schreiben" als Fehlermeldung.

chmod getestet: sowohl bei images als auch bei downloads und userfiles auf 777, Gruppe und Besitzer bei allen Ordnern gleich. Einziger Unterschied: Im Ordner images wird der Unterordner .thumbs-Ordner angelegt bzw. genutzt, sobald Bilder ins Spiel kommen, auch wenn diese in downloads bzw. userfile kommen.

Es ist also doch noch nicht ganz vorbei.

Viele Grüße
Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by cmb » Thu Nov 17, 2011 1:01 pm

Hallo Frank,
kmsmei wrote:Im Ordner images wird der Unterordner .thumbs-Ordner angelegt bzw. genutzt, sobald Bilder ins Spiel kommen, auch wenn diese in downloads bzw. userfile kommen.
Das ist wohl normal beim hi_kcfinder. Ist bei mir jedenfalls auch so.
kmsmei wrote:"Kann nicht in den Upload-Ordner schreiben" als Fehlermeldung
Diese Fehlermeldung kann kann wohl 2 verschiedene Ursachen haben. Entweder fehlt im images Ordner eine .htaccess und kann auch nicht angelegt werden, oder ein Ajax-Request versucht auf ein nicht beschreibbares Verzeichnis zuzugreifen. Ersteres ist aber wohl nicht relevant, da die Konfiguration wohl anders eingestellt ist. Um zweiteres zu prüfen, kannst Du den Ajax-Request selbst einmal manuell abschicken. Zunächst einmal solltest Du aber zu Debug-Zwecken in /plugins/hi_kcfinder/kcfinder/core/browser.php Zeile 620 ändern:

Code: Select all

$name = basename($file);
in

Code: Select all

$name = $file;
Dann musst Du eingeloggt sein, und den kcfinder einmal aufgerufen haben, damit die Session korrekt initialisiert wird. Dann einfach <URL Deiner HP>/plugins/hi_kcfinder/kcfinder/browse.php?type=images&lng=en&act=chDir aufrufen (ich habe die URL mal so notiert, damit Suchmaschinen nicht darauf zugreifen; ist zwar nicht schlimm, aber muss ja auch nicht sein). Du erhälst dann eine XML-Datei, die bei mir so aussieht:

Code: Select all

<root>
<files dirWritable="yes">
<file size="57469" mtime="1321534006" date="11/17/2011 01:46 " readable="yes" writable="yes" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no">
<name><![CDATA[C:/xampp/htdocs/cmsimple15dev6_/images/1.jpg]]></name>
</file>
<file size="40984" mtime="1321534019" date="11/17/2011 01:46 " readable="yes" writable="yes" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no">
<name><![CDATA[C:/xampp/htdocs/cmsimple15dev6_/images/2.jpg]]></name>
</file>
</files>
</root>
Entscheidend ist der Wert von <files dirWritable> und die Pfade zu den Bildern.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by kmsmei » Thu Nov 17, 2011 2:11 pm

Hallo Christoph

mag garnicht gerne dran denken, wie viel Zeit ich Dir mit dem seltsamen Verhalten schon abgenommen habe. Im Voraus erst mal ein dickes Dankeschön.

Getan wie geschrieben, seltsame Dinge tun sich.

<...>/plugins/hi_kcfinder/kcfinder/browse.php?type=downloads&lng=de&act=chDir
liefert brav XML-Ausgaben wie:
<root><files dirWritable="yes"><file size="6139741" mtime="1311253372" date="21/07/2011 03:02 PM" readable="yes" writable="yes" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no"><name>/export/autoren/kmsmei/www/elblandbiber/downloads/Strassenkarte_Landkreis.pdf</name></file> und so weiter

<..>/plugins/hi_kcfinder/kcfinder/browse.php?type=images&lng=de&act=chDir
bringt erst mal garnichts und unter Firefox dann wenigstens den Hinweis:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: <...>/plugins/hi_kcfinder/kcfinder/browse.php?type=images&lng=de&act=chDir
Zeile Nr. 1, Spalte 1:

Also habe ich die Sache jetzt "dicke": images-Ordner umbenennen, neuen images-Ordner erstellen, Rechte setzen, schauen wir mal...
Leerer Ordner:
<root>
<files dirWritable="yes">
</files>
</root>

Ordner mit einer einzigen Datei logo.jpg:
<root><files dirWritable="yes"><file size="23432" mtime="1257277521" date="03/11/2009 08:45 PM" readable="yes" writable="no" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no"><name><...>/images/logo.jpg</name></file></files></root>

Ordner mit einer einzigen Datei logo500.gif:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: <...>/plugins/hi_kcfinder/kcfinder/browse.php?type=images&lng=de&act=chDir
Zeile Nr. 1, Spalte 1:

Ordner mit drei Dateien ohne Zahlen im Namen:
<root><files dirWritable="yes"><file size="3231459" mtime="1311254967" date="21/07/2011 03:29 PM" readable="yes" writable="no" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no"><name> <...>/images/stumme_karte.png</name></file><file size="124691" mtime="1311253040" date="21/07/2011 02:57 PM" readable="yes" writable="no" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no"><name> <...>/images/Strassenkarte_Landkreis.png</name></file><file size="93297" mtime="1193649713" date="29/10/2007 10:21 AM" readable="yes" writable="no" bigIcon="yes" smallIcon="yes" thumb="no" smallThumb="no"><name> <...>/images/set.jpg</name></file></files></root>

Vermutung: Dateinamen mit Ziffern machen Ärger
Dann aber: keine Probleme mit logo_mpz_txt_500.jpg
Dafür aber mit: meirg510.gif

Vermutung verworfen, neue Vermutung muss her.

Kurzum bin ich jetzt soweit mit der Erkenntnis, dass es ganz gut funktioniert, solange ich keine gifs nutze.
Querversuch mit einem Upload einer gif-Datei aus dem HI_KCFinder in den Userfiles-Ordner: Der wird hochgeladen aber dann nicht angezeigt. Blick in die Dateistruktur: Datei wurde verworfen.
Jetzt noch per ftp eine gif-Datei in den Ordner userfiles, Check: jetzt steigt auch dieser Ordner mit der bekannten Fehlermeldung aus.

Ergo werde ich mich jetzt von allen gifs trennen.

Viele Grüße
Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by cmb » Thu Nov 17, 2011 3:02 pm

Hallo Frank,
kmsmei wrote:mag garnicht gerne dran denken, wie viel Zeit ich Dir mit dem seltsamen Verhalten schon abgenommen habe. Im Voraus erst mal ein dickes Dankeschön.
Aber auch Dir vielen Dank für's weitere Austesten und die gründliche Analyse. Eine Installation mit UserDirs ist wohl nicht das üblichste, dürfte aber schon öfter mal vorkommen. Und jetzt weiß man wenigstens mal, welche Problem da auftreten können, und wie man sie beim hi_kcfinder grundsätzlich lösen kann. Und das könnte ja auch andere Plugins betreffen.
kmsmei wrote:Kurzum bin ich jetzt soweit mit der Erkenntnis, dass es ganz gut funktioniert, solange ich keine gifs nutze.
Bei mir funktioniert mit GIFs alles problemlos, sogar mit animierten (obwohl da die Thumbsnails wohl nicht zu gebrauchen sind). Nun habe ich mir mal Deine PHP-Info angesehen. Im Abschnitt GD findet sich die Lösung: enabled sind nur JPG, PNG und WBMP! Wenn Du Einfluss auf diese Einstellung hast, dann einfach den GIF-Support aktivieren. Ansonsten müsste es auch funktionieren, wenn Du die Thumbnails "manuell" erstellst und per FTP in den .thumbs Ordner packst.
kmsmei wrote:Ergo werde ich mich jetzt von allen gifs trennen.
Das ist vielleicht sowieso die beste Lösung. Je nach Art des Bildes ist JPEG bzw. PNG die bessere Wahl.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: [NEU] Filebrowser-Plugin hi_KCFinder

Post by Holger » Tue Dec 13, 2011 9:18 pm

Hallo!

hi_KCFinder gibt es ab sofort in der Version 1.5, die mit dem aktuellen RC von XH 1.5 (und hoffentlich auch dem fertigen Release) kompatibel ist.

Die oben besprochenen Anpassungen habe ich auf meiner Merkliste, aber mangels eines passenden Testservers lasse ich das erst einmal aus diesem Release heraus.

Download, wie üblich unter
http://cmsimple.holgerirmler.de/?Plugins:KCFinder

Holger

Post Reply