2015-11-20 7 views
9

Ich arbeite derzeit an einem Port von CKEditor in Beton5. Im Rahmen dessen hat concrete5 die Möglichkeit, "Snippets" zu erstellen, die über den Editor eingefügt werden können. Entwickler haben die Möglichkeit, zu definieren, welche Art von HTML-Ausgabe dieser Widgets erzeugen aber im Bearbeitungsmodus, zeigt es einfach einen Platzhalter mit dem folgende HTML:CKEditor Fügen Sie nicht editierbaren HTML in Stil

'<span 
    class="ccm-content-editor-snippet" 
    contenteditable="false" 
    data-scsHandle="' + selectedSnippet.scsHandle + '" 
>' + selectedSnippet.scsName +'</span>' 

ich in CKEditor Widgets habe gesucht, aber nicht Ich möchte unbedingt meine Toolbar mit einer potenziell großen Anzahl von Knöpfen überladen, um diese Funktion zu aktivieren. Ich bin gespannt, ob es möglich ist, etwas zum Stylescombo-Dropdown (oder ähnlichem Dropdown) hinzuzufügen, das dann ein Snippet wie das obige einfügen würde.

Derzeit, was ich versuchen muss und dies zu tun, kann bei https://github.com/ExchangeCore/Concrete5-CKEditor/blob/feature/magicstyles/assets/concrete5styles/plugin.js#L17-L30 gefunden werden Dies funktioniert nicht ganz, weil ich keine Möglichkeit habe, die selectedSnippet.scsName in die innerHTML des Stils einfügen. Gibt es eine Möglichkeit, dies oder einen anderen offensichtlichen Weg zu gehen, um diese Art von Einfügefunktionalität in CKEditor zu verwenden, ohne Tonnen von Symbolleistenschaltflächen zu erstellen?

Der Inhalt dieses Bereichs sollte auch entfernt werden können, aber nicht bearbeitet werden können.

Antwort

3

Mit diesem Plugin können Sie ein Dropdown erstellen können eine beliebige HTML-Block einzufügen, die Sie wollen: http://ckeditor.com/addon/htmlbuttons

Wenn es auf den Quellcode nicht Ihren Anforderungen passen, das Aussehen und die Teile auswählen, die Sie fehlen.

+0

Ich landete einen Code von hier. Es funktionierte ziemlich gut, aber ich musste beim Laden der Reihenfolge vorsichtig sein. Ich fand heraus, dass wenn ich versuchte, eine Schaltfläche hinzuzufügen, nachdem alles bereits initialisiert wurde, es nicht angezeigt wurde (wie in einer Ajax-Anfrage) –