cmb wrote:Der extraPlugins Eintrag muss nicht in ckeditor/config.js erfolgen, sondern in plugins/ckeditor/init/init_*.js. In welcher der vier Dateien hängt davon ab, welche "Toolbar" in der Pluginkonfiguration ausgewählt ist (Voreinstellung ist full).
Genau so ist es. Und zusätzlich muss der Button für das neue Plugin manuell in die Toolbar eingegeben werden (das geht leider beim Konzept mit den init*.js von XH wohl nicht anders umzusetzen).
Ich würde aber anders vorgehen und zuallererst einmal den Editor updaten und dann auch nicht Einzel-Plugins in eigenen Ordnern installieren (siehe weiter unten).
Das eigentliche Editor-Update hatte ich extra einfach für den User gemacht, denn ich möchte nicht mit jeder neuen CKEditor-Version ein XH-Plugin-Update machen.
Alle Zusatzdateien, wie das wichtige "CMSimpleSave" - Plugin, sind außerhalb der Ordnerstruktur des Editor-Cores und deshalb lassen sich komplette Updates des Editors komfortabel erledigen.
Die Prozedur ist eigentlich ganz einfach:
im Plugin ist eine Datei "build-config.js" enthalten (Ordner /plugins/ckeditor/ckeditor/).
Diese Datei enthält die Beschreibung aller installierten Plugins (und eines Skins) des CKEditors.
Auf der Seite
http://ckeditor.com/builder ist oben rechts ein Button, um diese Datei vom lokalen Rechner hochzuladen.
Danach einfach evtl. noch ein anderes Skin, bzw. die gewünschten Sprachen) auswählen und dann den aktualisierten Editor als ZIP herunter laden.
Auf diese Weise sind dann schon automatisch alle bisher installierten Plugins des Editors enthalten.
Die neuen Dateien aus dem ZIP - bzw. den ganzen CKEditor-Ordner - dann einfach im XH-Plugin ersetzen (Ordner /plugins/ckeditor/ckeditor/*.* löschen und neue Dateien einspielen).
Das war's.
Außerdem erhält man auf diese Weise eine einzige komprimierte JS-Datei, in der auch alle Plugins enthalten sind, anstatt einer komplexen Ordnerstruktur mit mehreren (unkomprimierten) Dateien und Unterordnern je Plugin.
Will man auch mehrere Skins lokal installieren, muss man den Download lediglich mit einem anderen Skin wiederholen (ausgewählte Einträge bleiben erhalten).
Danach dann im XH-Plugin nur den Skin-Ordner des weiteren Downloads unterhalb von /plugins/ckeditor/ckeditor/skins/ hinzufügen.
Die verfügbaren Skins und Sprachen werden vom XH-Plugin automatisch erkannt.
Auf oben genannte Weise lässt sich ganz einfach der bisherige Editor in vollem Umfang aktualisieren.
Will man weitere Plugins in den Editor integrieren, wählt man sie einfach im Builder zusätzlich aus.
Die Datei "build-config.js" ist bei jedem Download mit im ZIP-Archiv enthalten und kann / sollte beim nächsten Update entsprechend wiederverwendet werden.
Allerdings ist beim CKEditor für CMSimple_XH noch ein kleiner Fallstrick enthalten, wenn man zusätzliche Plugins integriert:
Die in den /inits/init*.js - Dateien definierten Toolbars können die neu dazu gekommenen Plugins nicht automatisch erkennen und integrieren.
Zwar kann der CKEditor das eigentlich, aber damit wäre das XH eigene Konzept der verschiedenen Toolbars
so nicht machbar - denke ich.
Man muss die Buttons der Zusatzplugins also manuell in die Toolbar der jeweiligen init*.js - Datei eingeben. Danach sollten sie spätestens nach löschen des Browser-Caches sichtbar und funktionsfähig sein.
User, die ein eigenes Editor-Setup mit vielen Zusatz-Plugins verwenden, sollten vielleicht eine zusätzliche init-irgendwas.js mit der angepassten Toolbar-Konfiguration anlegen. So bleibt die Sache dann auch updatesicher, wenn es mal ein neues XH-Plugin gibt, was ja spätestens wegen der Anpassung an den Editorbrowser mit XH 1.7 fällig wird.
Auch wäre es einen Versuch wert, eine Art "init-auto.js" zu integrieren. Sie müsste dann so sein, dass alle vom Builder integrierten Plugins automatisch in der Toolbar auftauchen. Man verliert dann zwar die Kontrolle was alles wo angezeigt wird, aber eine angepasste Editorvariante wäre so leichter machbar
.
Vielleicht genügt es fast schon, wenn man die Auswahl der aktuellen Toolbar und die komplette Toolbar-Definiton aus der init-full.js löscht?
Einfach einmal testen und folgenden Code als init_auto.js im Ordner /plugins/ckeditor/inits abspeichern:
Code: Select all
{
baseHref : '%BASE_HREF%',
contentsCss : '%STYLESHEET%',
//remove default styles
stylesSet : [],
height : '%EDITOR_HEIGHT%',
defaultLanguage : 'en',
language : '%LANGUAGE%',
skin: '%SKIN%',
entities : false,
entities_latin : false,
entities_greek : false,
entities_additional : '', // '#39' (The single quote (') character.)
//Filebrowser - settings
filebrowserWindowHeight : '70%' ,
filebrowserWindowWidth : '80%' ,
%FILEBROWSER%
//removePlugins : 'autogrow',
extraPlugins : 'CMSimpleSave' //no komma after last entry
}
Wenn man dieses Setup dann im CKEditor-Plugin auswählt, sieht man sämtliche Buttons aller enthaltenen Plugins in der automatisch generierten Toolbar.
Leider sind dann so auch unnütze Dinge, wie zum Beispiel Vorschau, Drucken und leider auch der nicht kompatible Save-Button sichtbar.
Aber da könnte man noch einmal etwas Finetuning im Builder machen. Vielleicht lässt sich da noch einiges an unnützen Plugins abwählen. Ansonsten müsste man in der init_auto.js "removePlugins" verwenden.
Ich behalte das mal im Blick und komme beim nächsten Update darauf zurück.