Hallo,
es ist mir endlich gelungen, einen kostenlosen brauchbaren Dateimanager für tinyMCE in Contao 2.10.0 zum Laufen zu bringen.
Hier meine Schritte:
1.
Das Paket "Ajax File and Image Manager Version 1.0 Final" von php.letter.com downloaden, zurzeit aktueller Link: http://www.phpletter.com/download_pr...?version_id=33
2.
Aus diesem Paket den Ordner ajaxfilemanager
kopieren nach plugins/tinyMCE/plugins/ajaxfilemanager.
Alles andere aus der heruntergeladenen zip-Datei wird nicht gebraucht.
3.
Die Datei
plugins/tinyMCE/plugins/ajaxfilemanager/inc/config.base.php öffnen,
darin in den Zeilen 52/53 CONFIG_SYS_DEFAULT_PATH und CONFIG_SYS_ROOT_PATH folgendermaßen setzen:
Code:
define('CONFIG_SYS_DEFAULT_PATH', '../../../../tl_files/media'); //accept relative path only
define('CONFIG_SYS_ROOT_PATH', '../../../../tl_files/media'); //accept relative path only
Dabei /media nach eigenen Wünschen anpassen oder auch weglassen...
4.
Die Konfigurationsdatei system/config/tinyMCE.php folgendermaßen bearbeiten:
a) In der Zeile, die mit elements: beginnt, ajaxfilemanager hinzufügen, sieht dann so aus:
Code:
elements : "<?php echo $this->rteFields; ?>,ajaxfilemanager",
b)
Hinter theme_advanced_resizing: true, folgende Zeile einfügen:
Code:
file_browser_callback : "ajaxfilemanager",
Ob es genau diese Position innerhalb der tinyMCE.php sein muss, weiß ich nicht, aber irgendwo stand diese Empfehlung und es funktioniert so bei mir.
c)
Unten in der Datei vor </script> folgendes einfügen:
Code:
// start ajaxfilemanager configuration
function ajaxfilemanager(field_name, url, type, win) {
var ajaxfilemanagerurl = "plugins/tinyMCE/plugins/ajaxfilemanager/ajaxfilemanager.php";
switch (type) {
case "image":
break;
case "media":
break;
case "flash":
break;
case "file":
break;
default:
return false;
}
var view='thumbnail'; //alternativ: 'detail'
var language='de';
tinyMCE.activeEditor.windowManager.open({
url: ajaxfilemanagerurl + '?view=' + view + '&language=' + language,
title: "Ajax Dateimanager",
width: 882,
height: 540,
inline : "yes",
close_previous : "no"
},{
window : win,
input : field_name,
resizable: "yes"
});
return false;
}
// end ajaxfilemanager configuration
Wenn man als Grundeinstellung nicht thumbnail, sondern detail wünscht, kann man die Zeile mit var view = 'thumbnail' entsprechend anpassen.
Im Anhang findet sich meine tinyMCE.php mit allen Änderungen von Punkt 4.
Nachtrag zu Punkt 4:
Wer es gerne updatesicher möchte, kann AjaxFileManager auch so einbinden:
Die Datei system/config/tinyMCE.php kopieren und umbenennen in z.B. tinyCustom.php
Dann alle Änderungen des Punktes 4 in tinyCustom.php eintragen.
Zum Einbinden der tinyCustom.php folgende Zeile in system/config/dcaconfig.php eintragen:
Code:
$GLOBALS['TL_DCA']['tl_content']['fields']['text']['eval']['rte'] = 'tinyCustom'
5.
Deutsche Sprachdatei findet sich im Anhang.
Bitte kopieren in das Verzeichnis plugins/tinyMCE/plugins/ajaxfilemanager/langs
6.
Für einwandfreies Funktionieren brauchen der Ordner plugins/tinyMCE/plugins/ajaxfilemanager/session und die beiden darin enthaltenen Dateien die Dateirechte 0775.
Ich kann nicht genau prüfen, ob dies nur bei Contao-Installationen nötig ist, die im SMH-Modus laufen (s. dazu auch Punkt 7), oder generell gilt, da ich (ärgerlicherweise) den SafeMode-Hack brauche und AjaxFileManager die fehlenden Rechte monierte.
7.
(wahrscheinlich nur für Installationen mit SafeMode-Hack, eventuell auch generell)
AjaxFileManager bearbeitet Dateien nicht als ftp-user, sondern als Webserveruser. Das bedeutet u. U. Einschränkungen für AjaxFileManager bei Dateien, die dem ftp-user gehören, und umgekehrt.
Damit alle Vorgänge reibungslos funktionieren, brauchen die Dateien im tl_files/media-Ordner (zu /media s. oben bei Punkt 3) und der Ordner selbst die Dateirechte 0775.
AjaxFileManager vergibt beim Upload aber nur die Dateirechte 0755.
Um dies abzuändern, muss man in der Datei plugins/tinyMCE/plugins/ajaxfilemanager/inc/class.upload.php den Wert 0775 für var $uploadFileMode eintragen (Zeile 30):
Code:
var $uploadFileMode = 0775;
So, nun habe ich hoffentlich nichts vergessen oder falsch angegeben.
Über Rückmeldungen, insbesondere zu den Punkten 6 und 7, würde ich mich freuen.
MfG
Ulrike