FCK-Editor, Dateiupload und das automatische erzeugen der Unterordner (image/media/...)
am 09.10.2011 - 09:37 Uhr in
Hallo Drupal-Gemeinde,
ich steht hier mit dem FCK-Editor seit Tagen vor einem Problem/Frage und komm über Suchmaschinen & Co. einfach nicht weiter. Deshalb muß ich nun auch mal das Forum hier mit meiner Frage belästigen.
Kurze Vorstellung: Ich nutze Drupal 6 und hab vor einigen Tagen das FCK-Modul (aktuelle Version) installiert. Ziel ist es eine Seite aufzubauen, wo verschiedene Untergruppen als Gemeinschaft an diversen Projekten arbeiten können.
Der FCK funktioniert soweit auch ordnunggemäß. Jetzt hab ich nach Anleitung den FCK für den Dateiupload so konfiguriert, dass die Files in userfiles/UID/(media/image/flash/...) kopiert werden sollen.
Laut Anleitung (readme) heißt es, dass ich die entsprechenden Unterordner anlegen soll. Nur geht dies für mein Empfinden an diesem Punkt etwas am Sinn der Sache vorbei. Der Ordner für UID wird ja beim ersten upload eines User automatisch erzeugt. Also müsste es doch auch möglich sein, dass die restlichen Ordner (also image/media/...) automatisch angelegt werden. Ohne, dass ich von Hand (per FTP) diese Ordner erstelle, ist kein Upload möglich und auch die Filebrowser funktioniert nicht (z.B. auch keine Berechtigung um Ordner durch den User anzulegen). Und ich fänd es etwas mühselig, bei jedem neuen Benutzer zu warten, bis er seinen ersten upload versucht, mich dann kontaktieren muss, damit ich dann als Admin die Ordner erzeuge. Bei wenigen Usern ja noch machbar (wenn auch unlogisch), wenn´s aber mal (rein theoretisch) in die 100 oder gar 1000 User geht ist das doch unsinnig.
Also meine Frage, hab ich was falsch gemacht, versteh ich was falsch, oder wie läßt sich das realisieren? Mein Ansatz war jetzt, dass ich an der Stelle (wo auch imer die sein wird) wo der Ordner UID erzeugt wird, auch gleich noch die restlichen Ordner durch Drupal/FCK erzeugen lasse. Bin mir aber nicht sicher ob das der richtige Weg ist, geschweige denn in welchem Skipt das Ganze ausgeführt wird.
Danke schon mal für die Hilfe die jetzt hoffentlich schnell kommt...
Grüße
Moersl
- Anmelden oder Registrieren um Kommentare zu schreiben
Lösung gefunden, wenn vielleicht auch nicht perfekt
am 10.10.2011 - 11:20 Uhr
Da bisher noch keine Reaktionen kamen, hab ich mir mal den Quellcode angesehen und folgende Lösung für mich gefunden:
Im Verzeichnis:
/sites/all/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/
die Datei:
io.php
wie folgt bearbeiten:
Bei Zeile 136, da wo die Ordner samt Rechte erzeugt werden hab ich folgendes hinzugefügt (erste Zeile ist vom Orginal Quellcode, nur zur Orientierung):
mkdir( $folderPath, $permissions ) ;
if (is_dir($Config['UserFilesAbsolutePath']."/image")) {} else { mkdir ($Config['UserFilesAbsolutePath']."/image", $permissions);}
if (is_dir($Config['UserFilesAbsolutePath']."/media")) {} else { mkdir ($Config['UserFilesAbsolutePath']."/media", $permissions);}
if (is_dir($Config['UserFilesAbsolutePath']."/file")) {} else { mkdir ($Config['UserFilesAbsolutePath']."/file", $permissions);}
if (is_dir($Config['UserFilesAbsolutePath']."/flash")) {} else { mkdir ($Config['UserFilesAbsolutePath']."/flash", $permissions);}
Die $Config['UserFilesAbsolutePath'] wird in der sites/all/modules/fckeditor/filemanager.config.php erzeugt, also Pfradangabe mit UID.
Wer in der config.php vom FCK andere Ordner definiert hat, muß diese entsprechend erweitern.
Nachteil an der Geschichte ist, dass dies nun jedes mal, wenn ein Ordner erzeugt wird, ebenfalls geprüft wird. Ist also einer eher suboptimale. Hab aber auf die schnelle nicht finden können, wo der mkdir(UID) durchgeführt wird. Aber für´s erste reicht mir diese Lösung. Für andere Vorschläge bin ich aber immer empfänglich....
Ach ja, und nicht alle Provider erlauben die is_dir Abfrage. Wer ´nen eigenen Server hat und is_dir nicht ausführen darf kann dies jedoch in PHP freigeben.
Grüße Mörsl