Hallo zusammen,
eine nicht ganz saubere Lösung, aber zumindest sieht es so aus, als würde es nun funktionieren:
In den TinyMCE-Plugins ADVLINK und ADVIMAGE wird beim Aufruf eine Variable in den Opener geschrieben, die sich den Namen des TinyMCE-PopUps merkt.
In den Dateien LINKMAP und MEDIENPOOL wird dann geprüft, ob diese Variable existiert - falls ja, wird die genommen, es wird nach dem Inputfield HREF (Linkmap), bzw. SRC (Medienpool) gesucht und dort wird der entsprechende Wert eingefügt.
Durch die Abfrage sollten alle anderen Zusammenhänge zwischen Medienpool / Linkmap und anderen Redaxo-Komponenten unberührt bleiben.
Hier die Änderungen - wäre gut, wenn Ihr das auch nochmal testen könntet (die Dateien gibt's hier:
http://www.thomasgoellner.de/exchange/redaxo/tinymce_fix.zip
Zunächst in ADVLINK/LINK.HTM und ADVIMAGE/IMAGE:HTM:
Zeile 9:
- Code: Alles auswählen
<script language="javascript" type="text/javascript">opener.rex_popupwindow=this;</script>
Zeile 13 den BODY erweitern um den EventHandler:
- Code: Alles auswählen
onunload="opener.rex_popupwindow=undefined"
In linkmap.inc.php:
Ab Zeile 120 ein neuer Wert für $func_body:
- Code: Alles auswählen
$func_body .= '
if(typeof(opener.rex_popupwindow)=="undefined")
{
var linkid = link.replace("redaxo://","");
var needle = new opener.getObj("'. $opener_input_field .'");
needle.obj.value = linkid;
var needle = new opener.getObj("'. $opener_input_field_name .'");
needle.obj.value = name;
}
else
{
var linkid = link;
for(i=0; i<opener.rex_popupwindow.document.getElementsByTagName("input").length; i++)
{
tagname = opener.rex_popupwindow.document.getElementsByTagName("input")[i].name;
if(tagname=="href")
opener.rex_popupwindow.document.getElementsByTagName("input")[i].value = linkid;
}
}
';
Und in MEDIENPOOL.INC.PHP
Ab Zeile 85 eine neue Funktion selectMedia:
- Code: Alles auswählen
function selectMedia(filename)
{
if(typeof(opener.rex_popupwindow)== "undefined")
{
<?php
if ($opener_input_field!='')
{
echo 'opener.document.getElementById("'.$opener_input_field.'").value = filename;';
}
?>
}
else
{
for(i=0; i<opener.rex_popupwindow.document.getElementsByTagName("input").length; i++)
{
tagname = opener.rex_popupwindow.document.getElementsByTagName("input")[i].name;
if(tagname=="src")
{
opener.rex_popupwindow.document.getElementsByTagName("input")[i].value = 'files/'+filename;
}
}
}
self.close();
}