Plugins definieren

Der im CMS verwendete WYSIWYG Editor ist der TinyMCE Editor. Es besteht die Möglichkeit eigene Editor Plugins zu verwenden. Diese Plugins müssen in folgende Verzeichnisse hinterlegt werden:

  • site/<Mandant>/plugins/tiny_mce/ (Plugins sind nur für diesen Mandanten verfügbar)
  • site/_global/plugins/tiny_mce/ (Plugins sind für alle Mandanten verfügbar)

Jedes Plugin hat ein eigenes Verzeichnis, z.B. myPlugin. Damit das CMS das Plugin einbinden kann, müssen die Dateien editor_plugin_src.js und editor_plugin.js in diesem Verzeichnis existieren. Der Grundaufbau der editor_plugin_src.js Datei sollte folgendem Schema entsprechen:

(function() { // Sprachpaket laden tinymce.PluginManager.requireLangPack('myPlugin'); // Plugin definieren tinymce.create('tinymce.plugins.myPlugin', { init : function (ed, url) { // Kommando definieren ed.addCommand('myPluginCommand', function() { // ... }); // Button definieren ed.addButton('myPlugin', {  title : 'myPlugin.desc',  cmd : 'myPluginCommand',  image : url + '/img/icon.gif'  }); }, getInfo : function() { return { longname : 'MyPlugin', author : 'EGOTEC GmbH', authorurl : 'http://www.egotec.com', infourl : 'http://help.egotec.com', version : '1.0' }; } }); // Plugin registrieren tinymce.PluginManager.add('myPlugin', tinymce.plugins.myPlugin); })();

Wenn das Plugin eigene Sprachpakete verwenden soll, so müssen zwingend die Sprachdateien de.js und en.js existieren. Diese Sprachdateien liegen im Unterverzeichnis langs und sehen wie folgt aus:

tinyMCE.addI18n('de.myPlugin', {    desc : 'myPlugin' });
wb_incandescent
de.myPlugin muss für die entsprechende Sprache angepasst werden.

Um TinyMCE Plugins im CMS zuzulassen, muss außerdem eine .htaccess Datei im Verzeichnis plugins/tiny_mce/ angelegt werden.

<Files *>        Allow from all </Files>

Die grundlegende Plugin Struktur im CMS sieht demnach wie folgt aus:

<strong>plugins</strong> -- <strong>tiny_mce</strong> -- <em>.htaccess</em> ---- <span><strong>myPlugin</strong>
------
editor_plugin_src.js
------ 
editor_plugin.js
------ 
langs
-------- de.js
-------- en.js 

Nun kann das Plugin verwendet werden. Das Plugin wird automatisch in den WYSIWYG Editor geladen. Sollte das Plugin einen oder mehrere Buttons für die Toolbar haben, so muss nur noch die Editor Toolbar XML angepasst, bzw. erstellt werden.

warning
Bei der Entwicklung von eigenen TinyMCE Plugins gibt es keine EGOTEC Richtlinien oder Tutorials. Bitte entnehmen Sie Hilfe zur Entwicklung eigener Plugins der TinyMCE Dokumentation.
wb_incandescent
Über das Javascript Objekt tinymce.settings.egotec kann jederzeit im tinyMCE Plugin auf systemeigene Funktionen und Informationen zugegriffen werden.
  • tinymce.settings.egotec
    • Eigenschaften
      • dir: der Pfad zum ECM.
      • site: der Name des Mandanten der aktuellen Seite.
      • media: der Name des Multimedia Mandanten der aktuellen Seite.
      • lang: die Sprache der aktuellen Seite.
      • id: die ID der aktuellen Seite.
      • workflowCopy: die aktuelle Seite ist eine Workflowkopie.
      • releaseCopy: die aktuelle Seite ist eine Freigabekopie.
    • Funktionen
      • getField(String key): liefert einen Feldwert.
      • setField(String key, Mixed value): setzt einen Feldwert.
      • removeField(String key): löscht einen Feldwert.
      • getExtra(String key): liefert einen Extrawert.
      • setExtra(String key, Mixed value): setzt einen Extrawert.
      • removeExtra(String key): löscht einen Extrawert.
      • save(): speichert die Seite.