Hydrogen scheint ein hübscher Filebrowser mit vielen Bearbeitungsfunktionen zur sein. Die Anpassung an Contnido ist allerding recht aufwändig, weil das blöde Teil das Bildverzeichniss aus Configurationsdateien liest, und nicht bei Aufruf übergeben werden kann(z.B. je nach Mandant)
Wers trotzdem wagen möchte, bitte:
Ich gehe mal davon aus das tinyMCE unter /contenido/external/wysiwyg/tinymce liegt.
Und das version 0.0.4 oder 0.0.5 von emergence schon installiert ist.
<edit>Version 0.0.5 auch getestet</edit>
1. Hydrogen runterladen und nach */tinymce/hydrogen entpacken.
2. phpthumb von
http://phpthumb.sourceforge.net/ runterladen und nach */tinymce/hydrogen/phpthumb entpacken.
3. */phpthumb/phpThumb.config.php.default umbenennen in phpThumb.config.php
4. In */tinymce/editor.php werden folgende Änderungen nötig:
nach
Code: Alles auswählen
<script language="javascript" type="text/javascript" src="<?php echo $editor_baseurl; ?>jscripts/tiny_mce/tiny_mce.js"></script>
einfügen:
Code: Alles auswählen
<script language="javascript" type="text/javascript" src="<?php echo $editor_baseurl; ?>hydrogen/hydrogen/js/hydrogen.js"></script> <!-- eigefügt für hydrogen -->
und
ersetzen durch:
Code: Alles auswählen
file_browser_callback : "imanager.filebrowserCallBack", // geändert für Hydrogen
5. in */tinymce/hydrogen/hydrogen/js/hydrogen.js ist der Pfad zu hydrogen.php fest verdrahtet das wird nicht funktionieren also ersetzten wir:
Code: Alles auswählen
var win=window.open('/hydrogen/hydrogen.php',"imanager","top="+y+",left="+x+"width="+width+",height="+height+",scrollbars=yes,dialog=yes,minimizable=no,modal=yes,resizable=yes");
durch:
Code: Alles auswählen
var win=window.open('../../../../hydrogen/hydrogen/hydrogen.php',"imanager","top="+y+",left="+x+"width="+width+",height="+height+",scrollbars=yes,dialog=yes,minimizable=no,modal=yes,resizable=yes");
So damit ist die Installation im Prinzip abgeschlossen, wer möchte kann jetzt unter */tinymce/hydrogen/hydrogen/config.php und */tinymce/hydrogen/hydrogen/js/config.js die Pfade auf den Upload-Pfad des Mandanten fest verdrahten. Für mehrere Mandanten ist das nicht sehr komfortabel, aber so könnt ihr wenigstens testen, ob bis hierher alles funktioniert.
Jetzt kommt der komplizierte Teil: Wir müssen hydrogen die Mandantenuploadpfade übermitteln:
In editor.php müssen wir erstmal die Pfade aus der Datenbank lesen. Das geschieht mit folgendem Code irgendwo oberhalb von <!-- tinyMCE -->:
Code: Alles auswählen
$clienthtmluploadpath=$cfgClient[$client]["path"]["htmlpath"]."upload/";
$clientuploadpath=$cfgClient[$client]["path"]["frontend"]."upload/";
$htmlpath=parse_url($clienthtmluploadpath);
$clienthtmluploadpath=$htmlpath['path'];
<edit>wurde nach Anmerkung von emergence geändert</edit>
Vom htmlpfad wird die Domain abgeschnitten! Das wird Probleme machen, wenn der Mandant über eine andere Domain erreicht wird, aber hydrogen hat bei Pfaden mit Domain bei mir immer gesponnen, vielleicht hat ja jemand eine Idee.
Als nächstes fassen wir */tinymce/hydrogen/hydrogen/js/hydrogen.js an. Den Kopf ergänzen wir um 2 Variablen:
Code: Alles auswählen
function iManager(htmlpath, path) {
this.path = path;
this.htmlpath = htmlpath;
}
Diese Variablen werden beim Aufruf von win.open() den wir vorher schon geändert haben an hydrogen.php übergeben:
Code: Alles auswählen
var win=window.open('../../../../hydrogen/hydrogen/hydrogen.php?path='+this.path+'&htmlpath='+this.htmlpath,"imanager",
"top="+y+",left="+x+"width="+width+",height="+height+",scrollbars=yes,dialog=yes,minimizable=no,modal=yes,resizable=yes");
Das ist nur eine Zeile, die nur aus Layoutgründen umbrochen ist!!
Am Ende der Datei muss:
gelöscht werden, denn diese Initialisierung setzten wir jetzt in editor.php im Javascriptbereich vor tinyMCE.init({ ein wie folgt:
Code: Alles auswählen
var imanager = new iManager('<?php echo rawurlencode($clienthtmluploadpath); ?>', '<?php echo rawurlencode($clientuploadpath); ?>');
Jetzt werden unsere Pfade an iManager weitergegeben, der diese wiederum beim Aufruf an hydrogen.php übergibt. Dort müssen die Werte jetzt nur noch den entsprechenden Konstanten/Variablen zugewiesen werden.
In */tinymce/hydrogen/hydgrogen/hydrogen.php nach
einfügen:
Code: Alles auswählen
define('IM_WEBPATH',rawurldecode($_GET['htmlpath']));//override config value with contenido client-upload-path
define('IM_SHOW_PATH',rawurldecode($_GET['path']));//override with contenido client-upload-path
Da diese Werte als Konstanten definiert werden, müssen die beiden entsprechenden Zeilen in */tinymce/hydrogen/hydrogen/config.php auskomentiert werden, sonst gibts Fehlermeldungen.
Zurück in hydrogen.php nach
Code: Alles auswählen
<script type="text/javascript" src="js/config.js"></script>
<script type="text/javascript">
einfügen:
Code: Alles auswählen
var IM_WEBPATH='<?php echo rawurldecode($_GET['htmlpath']); ?>';//override config value with contenido client-upload-path
Jetzt sollte es funktionieren, wenn ich hoffentlich nix vergessen habe. Über Rückmeldung freue ich mich natürlich, kann aber auch nur im Rahmen meiner Möglichkeiten helfen.