ProcessWire - Editor: Unterschied zwischen den Versionen
| Zeile 9: | Zeile 9: | ||
Ist der Standard Editor in PW. Es gibt auch Module mit denen man Ihn ersetzen kann. Im Prinzip aber ein mächtiges Werkzeug. | Ist der Standard Editor in PW. Es gibt auch Module mit denen man Ihn ersetzen kann. Im Prinzip aber ein mächtiges Werkzeug. | ||
| − | == Konfiguration CKEditor in PW== | + | Hinweis: In neueren Versionen von PW (mindestens ab V3) Sind einige der Angaben unten überholt. Als Referenz bleiben Die Tutorials auf dieser Seite unten erhalten |
| − | + | ||
| + | |||
| + | == CKEditor allgemeines Wissen == | ||
| + | Ein paar Infos zu CKEditor ohne PW. Viele Dinge sind ähnlich. | ||
| + | === Konfiguration === | ||
| + | ==== Toolbar ==== | ||
| + | http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar | ||
| + | |||
| + | |||
| + | === Plugins === | ||
| + | Werden normalerweise mit einem Builder implementiert. Das geht bei PW nicht. Aber es gelten zum Teil die Regeln für Manuelle Installation. Manche Schritte z.B. aktivieren der Plugins macht man in PW aber wahlweise über die Feldkonfiguration. | ||
| + | |||
| + | Beispiel Widget Plugin: | ||
| + | |||
| + | If you want to add the plugin manually, you will need to: | ||
| + | * Extract the downloaded plugin .zip into the plugins folder of your CKEditor installation. Example: | ||
| + | http://example.com/ckeditor/plugins/widget | ||
| + | * Enable the plugin by using the extraPlugins configuration setting. Example: | ||
| + | config.extraPlugins = 'widget'; | ||
| + | * Download and configure all its '''dependencies''', too. | ||
| + | In PW | ||
| + | |||
| + | == Snippets == | ||
| + | |||
| + | === Praktisches Beispiel 1=== | ||
| + | |||
| + | Im Tab Eingabe des Editor Felds kann man verschiedene Dinge Einstellen. Die meisten Felder sind auch recht gut erklärt: | ||
| + | |||
| + | '''Editor Toolbar einstellen''' | ||
| + | |||
| + | Interessant ist hier der '''Eintrag Styles'''. Das Formatdialogfeld formatiert einzelne Blockstile wie h1 oder p. Im Styles Dropdown kann man auch Umgebende Blockelemente wie z.B. Divs mit speziellen Klassen nutzen. | ||
| + | |||
| + | Guter Standard mit Tabellen und Styles Dropdown | ||
| + | <pre> | ||
| + | Format, Styles, -, Bold, Italic,Superscript, -,JustifyLeft,JustifyCenter,JustifyRight,-, RemoveFormat | ||
| + | NumberedList, BulletedList, -, Blockquote | ||
| + | PWLink, Unlink, Anchor | ||
| + | |||
| + | PWImage, Table, HorizontalRule, SpecialChar | ||
| + | PasteText, PasteFromWord,-,Undo,Redo | ||
| + | Scayt, -, Sourcedialog | ||
| + | </pre> | ||
| + | '''Tags formatieren''' | ||
| + | |||
| + | Hier kann man festlegen welche '''Tags im Format Dropdown''' ausgewählt werden können. Hier ein Beispiel bei dem wir h1 weglassen. H1 wird oft über das Template selbst ausgegeben und sollte nur einmal pro Seite auftauchen. | ||
| + | <pre> | ||
| + | p;h2;h3;h4;h5;h6;pre;address | ||
| + | </pre> | ||
| + | |||
| + | ''' Styles festlegen ''' | ||
| + | |||
| + | Um die oben erwähnten Styles anzupassen wir eine kleine JavaScript Datei. Wo diese liegt legen wir im Abschnitt '''Eigenes Editor-JS-Style-Set''' fest. Wir nutzen den bereits vorgeschlagenen Pfad tragen diesen ein und legen die Datei an: | ||
| + | mystyles:/site/modules/InputfieldCKEditor/mystyles.js | ||
| + | |||
| + | Standardbeispiel | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | CKEDITOR.stylesSet.add( 'mystyles', [ | ||
| + | { name: 'Inline Code', element: 'code' }, | ||
| + | { name: 'Inline Quotation', element: 'q' }, | ||
| + | { name: 'Left Aligned Photo', element: 'img', attributes: { 'class': 'align_left' } }, | ||
| + | { name: 'Right Aligned Photo', element: 'img', attributes: { 'class': 'align_right' } }, | ||
| + | { name: 'Centered Photo', element: 'img', attributes: { 'class': 'align_center' } }, | ||
| + | { name: 'Small', element: 'small' }, | ||
| + | { name: 'Deleted Text', element: 'del' }, | ||
| + | { name: 'Inserted Text', element: 'ins' }, | ||
| + | { name: 'Cited Work', element: 'cite' } | ||
| + | ]); | ||
| + | </syntaxhighlight> | ||
| + | Modifiziertes Beispiel | ||
| + | <syntaxhighlight lang="javascript"> | ||
| + | CKEDITOR.stylesSet.add( 'mystyles', [ | ||
| + | { name: 'Expose-Liste', element: 'p', attributes: { 'class': 'expose' } }, | ||
| + | { name: 'Klein', element: 'small' }, | ||
| + | { name: 'Gelöscht', element: 'del' }, | ||
| + | { name: 'Eingefügt', element: 'ins' }, | ||
| + | { name: 'Zitat', element: 'cite' } | ||
| + | ]); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | == Weiter Forum Beispiele == | ||
| + | https://processwire.com/talk/topic/9606-how-to-configure-ckeditortextarea-field-to-enable-color-toolbar/ | ||
| + | |||
| + | |||
| + | == Konfiguration CKEditor in PW (alt)== | ||
| + | |||
/sites | /sites | ||
ausgelagert und somit auch Updatefähig. Abschauen kann man im original Modul in | ausgelagert und somit auch Updatefähig. Abschauen kann man im original Modul in | ||
| Zeile 73: | Zeile 157: | ||
=== Eigene Styles === | === Eigene Styles === | ||
| − | Eigene Stile zur Auswahl im Styles Dropdown | + | Eigene Stile zur Auswahl im '''Styles''' Dropdown |
| − | site->modules->InputfieldCKEditor-> | + | site->modules->InputfieldCKEditor->mystyles.js |
| − | + | anpassen. | |
| − | + | Im Backend den Pfad hinzufügen (siehe Beispiel unten) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=== Konfigurationsbeispiele === | === Konfigurationsbeispiele === | ||
| Zeile 120: | Zeile 188: | ||
==== Custom Editor CSS File ==== | ==== Custom Editor CSS File ==== | ||
| − | Für die im Editor angezeigten Stile | + | Für die '''im Editor angezeigten Stile''' |
site/modules/InputfieldCKEditor/contents.css | site/modules/InputfieldCKEditor/contents.css | ||
<syntaxhighlight lang="css"> | <syntaxhighlight lang="css"> | ||
| Zeile 144: | Zeile 212: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
==== Custom Editor JS File ==== | ==== Custom Editor JS File ==== | ||
| + | |||
Für die Auswahlfelder in der '''Toolbar''' | Für die Auswahlfelder in der '''Toolbar''' | ||
| − | + | customstyles:/site/modules/InputfieldCKEditor/mystyles.js | |
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
CKEDITOR.stylesSet.add( 'mystyles', [ | CKEDITOR.stylesSet.add( 'mystyles', [ | ||
| Zeile 164: | Zeile 234: | ||
=== Plugins hinzufügen === | === Plugins hinzufügen === | ||
* https://weekly.pw/issue/13/#1-2 -> Plugins für CK Editor etc. | * https://weekly.pw/issue/13/#1-2 -> Plugins für CK Editor etc. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Version vom 2. August 2018, 09:20 Uhr
HINWEIS: Bei Änderungen an den Styles unbedingt Modul-Cache löschen (Module > Aktualisieren)
Links
https://processwire.com/talk/topic/3023-module-ckeditor/ https://processwire.com/talk/topic/14601-solved-ckeditor-custom-stylesclasses/ https://processwire.com/talk/topic/19465-ckeditor-styles-dropdown-tips/
Der CKEditor
Ist der Standard Editor in PW. Es gibt auch Module mit denen man Ihn ersetzen kann. Im Prinzip aber ein mächtiges Werkzeug.
Hinweis: In neueren Versionen von PW (mindestens ab V3) Sind einige der Angaben unten überholt. Als Referenz bleiben Die Tutorials auf dieser Seite unten erhalten
CKEditor allgemeines Wissen
Ein paar Infos zu CKEditor ohne PW. Viele Dinge sind ähnlich.
Konfiguration
Toolbar
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar
Plugins
Werden normalerweise mit einem Builder implementiert. Das geht bei PW nicht. Aber es gelten zum Teil die Regeln für Manuelle Installation. Manche Schritte z.B. aktivieren der Plugins macht man in PW aber wahlweise über die Feldkonfiguration.
Beispiel Widget Plugin:
If you want to add the plugin manually, you will need to:
- Extract the downloaded plugin .zip into the plugins folder of your CKEditor installation. Example:
http://example.com/ckeditor/plugins/widget
- Enable the plugin by using the extraPlugins configuration setting. Example:
config.extraPlugins = 'widget';
- Download and configure all its dependencies, too.
In PW
Snippets
Praktisches Beispiel 1
Im Tab Eingabe des Editor Felds kann man verschiedene Dinge Einstellen. Die meisten Felder sind auch recht gut erklärt:
Editor Toolbar einstellen
Interessant ist hier der Eintrag Styles. Das Formatdialogfeld formatiert einzelne Blockstile wie h1 oder p. Im Styles Dropdown kann man auch Umgebende Blockelemente wie z.B. Divs mit speziellen Klassen nutzen.
Guter Standard mit Tabellen und Styles Dropdown
Format, Styles, -, Bold, Italic,Superscript, -,JustifyLeft,JustifyCenter,JustifyRight,-, RemoveFormat NumberedList, BulletedList, -, Blockquote PWLink, Unlink, Anchor PWImage, Table, HorizontalRule, SpecialChar PasteText, PasteFromWord,-,Undo,Redo Scayt, -, Sourcedialog
Tags formatieren
Hier kann man festlegen welche Tags im Format Dropdown ausgewählt werden können. Hier ein Beispiel bei dem wir h1 weglassen. H1 wird oft über das Template selbst ausgegeben und sollte nur einmal pro Seite auftauchen.
p;h2;h3;h4;h5;h6;pre;address
Styles festlegen
Um die oben erwähnten Styles anzupassen wir eine kleine JavaScript Datei. Wo diese liegt legen wir im Abschnitt Eigenes Editor-JS-Style-Set fest. Wir nutzen den bereits vorgeschlagenen Pfad tragen diesen ein und legen die Datei an:
mystyles:/site/modules/InputfieldCKEditor/mystyles.js
Standardbeispiel
CKEDITOR.stylesSet.add( 'mystyles', [
{ name: 'Inline Code', element: 'code' },
{ name: 'Inline Quotation', element: 'q' },
{ name: 'Left Aligned Photo', element: 'img', attributes: { 'class': 'align_left' } },
{ name: 'Right Aligned Photo', element: 'img', attributes: { 'class': 'align_right' } },
{ name: 'Centered Photo', element: 'img', attributes: { 'class': 'align_center' } },
{ name: 'Small', element: 'small' },
{ name: 'Deleted Text', element: 'del' },
{ name: 'Inserted Text', element: 'ins' },
{ name: 'Cited Work', element: 'cite' }
]);
Modifiziertes Beispiel
CKEDITOR.stylesSet.add( 'mystyles', [
{ name: 'Expose-Liste', element: 'p', attributes: { 'class': 'expose' } },
{ name: 'Klein', element: 'small' },
{ name: 'Gelöscht', element: 'del' },
{ name: 'Eingefügt', element: 'ins' },
{ name: 'Zitat', element: 'cite' }
]);
Weiter Forum Beispiele
Konfiguration CKEditor in PW (alt)
/sites
ausgelagert und somit auch Updatefähig. Abschauen kann man im original Modul in
wire/site/modules/InputfieldCKEditor/
Dort gibe es diverse Dateien. Allerdings ist nicht alles möglich, was in der CKEditor Doku steht. In PW können scheinbar manche Einstellungen nicht über die Dateien geregelt werden.
Wo stellt man was ein ?
Hinweis: Nicht alles was hier steht funktioniert auch so. Am besten im Backend in der Feldkonfiguration schauen und dort die Pfade anpassen. Ordner:
site/modules/InputfieldCKEditor/
Konfiguration gültig für alle Felder im Backend (hat bei mir bisher nicht ohne die Backendkonfiguration für das Feld funktioniert)
config.js
Konfiguration für ein bestimmtes Feld falls vorhanden
config.[fieldname.]js mystyles.js -> ein selbstbenanntes Feld kann im Backend bei der Konfiguration des CKEditor Feldes angegeben werden.
Allgemeine Konfiguration. Z.B. Styles hinzufügen, removeFormatTags,
Alles was der Editor beim Eingeben mit JavaScript bearbeitet. Außerdem Style Auswahl anpassen alle Optionen die mit CKEDITOR. anfangen
content.css
Stile die der Editor bei der Eingabe benutzt. Also quasi die Vorschau für den Benutzer.
contents-inline.css
Stile für die Vorschau beim Inline Editor
Feldkonfiguration im Admin Bereich PW
Hier muß die Toolbar eingestellt werden. Über Konfig hat es bisher nicht geklappt. Hier muss auch die CSS Datei für die Inline Styles angegeben werden.
Überschreiben in der config.js hat bei mir nicht funktioniert - in aktueller Version 3.062 klappt es..
Auch Plugins müssen hier ausgewählt werden, damit sie eingebunden werden. Dies funktioniert also alles nur auf Feld-Ebene und nicht global.
CKEditor Buttons anpassen
Wenn man ein Textarea Feld definiert, kann man auch für dieses Feld den CKEditor anpassen. Das geht im Backend in der Feldkonfiguration unter dem Reiter Eingabe. Beispiel: Hier werden Buttons für die Textausrichtung hinzugefügt.
Format, Styles, -, Bold, Italic,Superscript, -,JustifyLeft,JustifyCenter,JustifyRight,-, RemoveFormat NumberedList, BulletedList, -, Blockquote PWLink, Unlink, Anchor PWImage, Table, HorizontalRule, SpecialChar PasteText, PasteFromWord,-,Undo,Redo Scayt, -, Sourcedialog
Default Einstellungen
Todo: TESTEN ob das wirklich funktioniert Kann man im Modulverzeichnis unter site/modules hinterlegen. Achtung nicht im Modulverzeichnis unter wire überschreiben. Das ist beim nächsten Update weg.
/site/modules/InputfieldCKEditor/config.js -> überschreibt oder ergänzt die Default Einstellung /site/modules/InputfieldCKEditor/config.body.js -> überschreibt oder ergänzt das body Feld
Beispiele:
config.startupOutlineBlocks = true;
CKEDITOR.editorConfig = function( config ) {
config.justifyClasses = [ 'left', 'center', 'right', 'justify' ];
};
Leider funktionieren viele Einstellungen hier nicht, die im original CKEditor möglich sind.
Eigene Styles
Eigene Stile zur Auswahl im Styles Dropdown
site->modules->InputfieldCKEditor->mystyles.js
anpassen. Im Backend den Pfad hinzufügen (siehe Beispiel unten)
Konfigurationsbeispiele
Im Adminbereich im content_main Feld:
CKEditor Toolbar
Added justify buttons...
Format, Styles, -, Bold, Italic, Superscript, -,JustifyLeft ,JustifyCenter ,JustifyRight , -, RemoveFormat NumberedList, BulletedList, -, Blockquote PWLink, Unlink, Anchor, PWImage, Table, HorizontalRule, SpecialChar PasteText, PasteFromWord,-,Undo,Redo Scayt, -, Sourcedialog
Blöcke anzeigen, Smileys
Format, Styles, -, Bold, Italic, Underline, Strike, Superscript, Subscript, JustifyLeft ,JustifyCenter ,JustifyRight , -, NumberedList, BulletedList, -, Blockquote PWLink, Unlink, Anchor, PWImage, Table, HorizontalRule, SpecialChar, Smiley, ShowBlocks, RemoveFormat, PasteText, PasteFromWord,-, Undo, Redo, -, Sourcedialog
Custom Editor CSS File
Für die im Editor angezeigten Stile
site/modules/InputfieldCKEditor/contents.css
@import url('../../templates/vendors/fa/css/font-awesome.min.css');
@import url('../../templates/vendors/bootstrap/css/bootstrap.min.css');
@import url('../../templates/css/main.css');
.cke_editable {
font-size: 14px;
line-height: 1.6em;
}
.cke_contents_ltr blockquote {
padding-left: 20px;
padding-right: 8px;
border-left-width: 5px;
}
.cke_contents_rtl blockquote {
padding-left: 8px;
padding-right: 20px;
border-right-width: 5px;
}
Custom Editor JS File
Für die Auswahlfelder in der Toolbar
customstyles:/site/modules/InputfieldCKEditor/mystyles.js
CKEDITOR.stylesSet.add( 'mystyles', [
{ name: 'Home Icon', element: 'i', attributes: {'class': 'fa fa-home fa-2x'}},
{ name: 'Panel Title', element: 'h4', attributes: {'class': 'panel-title'} },
]);
CKEDITOR.dtd.$removeEmpty['i'] = false; // leere i Tags erlauben (für font awesome)
config.js
In /site/modules/InputfieldCKEditor/config.js (oder config.feldname.js)
CKEDITOR.editorConfig = function( config ) {
config.uiColor = '#AADC6E';
config.coreStyles_italic = { element : 'i', overrides : 'em' }; // i nicht durch em überschreiben (für font awesome)
Plugins hinzufügen
- https://weekly.pw/issue/13/#1-2 -> Plugins für CK Editor etc.