Montag, 14. März 2016

Intrexx und TinyMCE: HTML einfügen

Einfügen von HTML-Code in ein TinyMCE-Textfeld unter Intrexx

Problem:

In ein Intrexx-Textfeld soll via JavaScript HTML-Code eingefügt werden (konkret der Link auf einen anderen Artikel).

Lösung:

tinyMCE.activeEditor.execCommand('mceInsertRawHTML',false,htmlText);
So weit, so einfach.

Problem 2:

Nun filtert TinyMCE leider den HTML-Code. So wird z.B. aus:
<a id="ID_B9XXXX" class="Link_Standard" onclick="tuWas!" href="#">Hinweise für Benutzer</a>
ein schlichtes:
<a id="ID_B9XXXX" href="#">Hinweise für Benutzer</a>
 Damit funktioniert der Link nicht mehr!

Eine vorläufige Lösung ist folgende Zeile, die die Filterung aufhebt:
tinymce.activeEditor.schema.addValidElements("a[onclick|id|class|href]");
Das funktioniert.
Wenn man allerdings das Textfeld beim nächsten Mal bearbeitet, wird beim Aufruf der HTML-Code des bestehenden Links wieder entfernt!

Lösung 2:

Man erstellt die Datei:
internal/system/vm/custom/custom_TinyMCE.vm
mit dem Inhalt:
extended_valid_elements : "+a[id|class|onclick|href]"
Anschließend setzt man in den Expert-Attributen der jeweiligen Textfelder das neue Attribut:
tiny-userconfiguration: internal/system/vm/custom/custom_TinyMCE.vm
Anschließend sollte der HTML-Code unangetastet bleiben.