FSS.social
28Nov 110

CKEditor für die klassische Notes-Web-Entwicklung II (Infos zur Demo und Integration)

am Montag, den 28. November 2011

Auf zum zweiten und vermutlich nicht letzten Eintrag zum CKEditor.
Im letzten Eintrag hatte ich auf eine Demo-Datenbank verwiesen, wo der Rich-Text-Editor in eine Form eingebunden worden war.

Auf diese Demo will ich heute genauer eingehen.

Zur Demo: Die vier wichtigen Stellen

1. Zum einen muss das Rich-Text-Feld dem Klassennamen ckeditor-field verpasst bekommen (in der Demo-Form)

CKEditor-1
2. Dann müssen die Pfade korrekt gesetzt sein (in der Demo-Form)
Hier ein Beispiel wie die Pfade aussehen müßten, wenn man die Dojo und den CKEditor-Version auf einem 8.5.2 Server einbinden will.
Wer die Demo unter 8.5.3 laufen lassen will muss den hervorgehobenen Pfad anpassen

CKEditor-2
3. Die Javascript-Lib ckeditor_loader.js
Durch diese Routine werden alle Rich-Text Felder durch den Editor ersetzt,
Man kann die Stelle auch gut dazu nutzem um den CKEditor zu konfigurieren.
Um die Demo zum Fliegen zu bringen, muss hier nichts verändert werden.

4. Der Agent PassthuHTML
Der Agent sorgt dafür dass der eingebene Code im Rich-Text-Feld auch als HTML-Code angezeigt wird.
Hier muss für jedes Rich-Text-Feld eine Funktion aufgerufen werden.

 

Integration des CKEditors in die Notes Datenbank

Doch was ist wenn man z.B. die aktuelle Version des CKEditors einbinden will?
Oder wenn man den Editor gerne mit eigenen Plugins erweitern möchte.

Man könnte eine neue Version des CKEditor auf dem Server mit ablegen.
Schöner wäre es jedoch, wenn man die neue CKEditor-Version in die Datenbank integrieren könnte.

Den neuen CKEditor kann man relativ leicht in die Datenbank kopieren.
Hierzu wechselt man zunächst in die Java-Perspektive (Menu-Punkt: Window/Open Perspective/Java) und kopiert das ckditor-Verzeichnis in die Datenbank.

CKEditor-3
Ändert man den obigen Pfad (2) entsprechend um.

CKEditor-4

greift man nun auf den CKEditor in der Datenbank zu.

Allerdings läuft nun das komprimierte Javascript des Editors auf den folgenden Fehler:
<font color="blue"/>m.lang.contextmenu is undefined.<font color="black">

Wühlt man sich durch verschiedene Foren, stellt man fest, dass bereits mehrere Leute über diese oder ähnliche Meldungen gestolpert sind. Übrigens unabhängig von Notes.
Wirft man einen Blick ins Log des Notes-Servers, sieht man, daß der CKEditor beim Nachladen weiterer Javascript-Routinen auf die Nase fällt.
Beim Nachladen wird an den Pfad der Javascriptroutine ein Parameter angehangen (?t=xxxxx). Domino scheint aufgrund des Parameters fälschlicherweise zu glauben, daß es sich um ein Befehl für ihn handelt und läuft dabei auf einen Fehler.

Nimmt man nicht den komprimierten Code des Editors, sondern den Orginal-Source Code

CKEditor-5

stellt man verblüfft fest, dass es damit geht.
Allerdings braucht nun der Editor ungleich länger zum Laden des Javascript-Codes.

Sum summarum
Ist das System performant genug, so kann man den CKEditor bereits in eine Notes-Datenbank integrieren,
Besteht man auf den perfomanteren Weg und will den komprimierten Code des Editors einbinden, so muß entweder der CKEditor auf dem Server liegen oder man muss dem CKEditor abgewöhnen den Parameter mitzugeben. Allerdings dürfte es sehr mühselig sein im komprimierten <font color="blue">ckeditor.js<font color="black">-Code die Stelle zu finden und zu beheben.

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

Noch keine Trackbacks.