Der Standard WYSIWYG Editor in der concrete5 Version 7 ist der Redactor. Ab Version 8 wird der CKEditor eingesetzt.
Beide HTML Editoren sind erprobte OpenSource Produkte. Für den Redaktor gibt es auch käufliche Versionen, die über die Firma Imperavi vertrieben werden.
Die HTML Editoren werden auch in anderen webbasierten Systemen eingesetzt und sind auf fast allen Plattformen und aktuellen Browser-Versionen einsatzfähig.
Warum Frank ab der concrete5 Version 8 dem CKEditor den Vorzug gab, darüber kann nur spekuliert werden. Ich vermute, weil der Redacktor im OpenSource Bereich nicht mehr weiterentwickelt wird, sondern nur noch in der käuflichen Version. Die Sourcen auf github sind zumindest schon ein paar Jährchen alt.
Die Redaktor Version, die noch bei der concrete5 Version 7 zum Einsatz kommt ist die Version V10.2.2, wobei die entsprechende Javascript Datei fälschlicherweise im Header V10.2.1 ausweist.
In der Funktionalität sind beide Editoren gleichwertig, jedoch erscheint der CKEditor im Outfit etwas moderner daherzukommen. Bezüglich der API kann der CKEditor besser angepasst werden, beim Redaktor wurden die Anpassungen für concrete5 direkt in den Code geschrieben - nicht sehr updatesicher. Vielleicht war auch dies ein Grund für den Umstieg.
Des weiteren hat die Redaktor Version, die in der Version 7 verwendet ist einen kleinen Schönheitsfehler. Die Markierung um Textbereiche zu modifizieren (bold, italic, links setzen, ...) funktionieren im Chrome und im Opera NICHT (deshalb ist 'NICHT' jetzt auch nicht 'bold' gesetzt ;-)
Für Chrome gibt es einen Workaround, der erstmal bei stackoverflow.com publiziert wurde
(https://stackoverflow.com/questions/43674400/redac...):
Datei: concrete/js/build/vendor/redactor/redactor.js, Zeile 8202
createMarkers: function() { this.selection.get(); var node1 = this.selection.getMarker(1); this.selection.setMarker(this.range, node1, true); if (this.range.collapsed === false) { var node2 = this.selection.getMarker(2); this.selection.setMarker(this.range, node2, false); // change concrete5 chrome patch if ( this.utils.browser('chrome')){ ?this.caret.set(node1, 0, node2, 0); } // concrete5 end } t?his.savedSel = this.$editor.html(); },
Ach ja, beinahe hätte ich es vergessen, damit die Änderungen wirksam werden müssen diese noch unter
/concrete/js/redactor.js
nachgezogen werden, dort steht die komprimierte wenig leserliche Version. Am besten man lässt auf die ursprüngliche Datei einen "Kompressor" laufen (beispielsweise den yuicompressor ein Java Programm) und ersetzt die die Datei unter "./concrete/js". Oder - da ja nur eine einfache Änderung - man kopiert folgenden Code an die entsprechende Stelle (Zeile 5, Spalte 6967):
if(this.utils.browser('chrome')){this.caret.set(a,0,b,0);}
Wer sich zu sehr an den Redactor gewöhnt hat kann in auch in der Version 8 weiter benutzen. Der Code ist vorhanden. Jedoch muss man die entsprechenden Sourcen selbst ändern. Es geht, ist aber nicht einfach und Programmierkenntnisse sind erforderlich.
Zuletzt hier noch die Einstellmöglichkeiten im Backend von concrete5 für den Redactor und auf der rechten Seite (reponsive dann irgendwann am Ende) die vom CKEditor (man kann es auch übertreiben).