CakePHP & DIEVOLUTION Blog
WYSIWYG HTML Editor in Rails
Stellen wir uns vor, wir haben einen Kunden, der gerne selbst Texte, Blogeinträge o.ä. über unsere neue Railsanwendung speichern und veröffentlichen möchte. Kurz nach Beginn des Meetings gibt es immer diesen einen Satz, den man als Webentwickler natürlich nicht gerne hört “Es soll einfach so sein wie Word.”. Natürlich ist es nicht einfach, mal eben so die grundlegenden Funktionen von Word im Internet abzubilden, sogar in Rails nicht
Zum Glück gibt es für Webseiten Alternativen auf Javascript Basis. Ich möchte euch vorstellen, wie ihr mit dem CKEditor in sehr wenigen Schritten aus einem Textfeld in einem Rails View einen echten WYSIWYG Editor a la Word macht.
Schritt 1: Unser Railsview
Als Ausgangspunkt dient ein einfaches Railsformular, das ein textarea Feld enthält
-
<% form_for @post do |f| %>
-
<%= f.error_messages %>
-
<p>
-
<%= f.label :content %><br />
-
<%= f.text_area :content%>
-
</p>
-
<p><%= f.submit “Submit” %></p>
-
<% end %>
Dies ist unser Ausgangspunkt.

Schritt 2: CKEditor downloaden
Ihr ladet euch nun den CKEditor unter http://ckeditor.com/download runter und entpackt diesen in das
Verzeichnis. Das wars auch schon fast
Schritt 3: CKEditor einbauen
Nun zum wichtigsten Schritt, das einbauen des Editors, so dass dieser anstelle des normalen Editors geladen wird. Hierzu fügt ihr folgende Textzeile in euer Rails layout File (meistens views/layouts/application.html.erb) ein:
Nun wird der Editor geladen. Damit er aber auch im richtigen Textarea Feld geladen wird, kommen noch folgende Anpassungen in eurer View-File:
-
<% form_for @post do |f| %>
-
<%= f.error_messages %>
-
<p>
-
<%= f.label :content %><br />
-
<%= f.text_area :content, :id => “editor1″ %>
-
<script type=“text/javascript”>
-
//<![CDATA[
-
CKEDITOR.replace( ‘editor1′,
-
{
-
toolbar :
-
[
-
[‘Save’,‘-’,‘Cut’,‘Copy’,‘Paste’,‘PasteText’,‘PasteFromWord’,‘Source’,‘Find’,‘Replace’],
-
[‘SelectAll’,‘RemoveFormat’],
-
[‘Undo’,‘Redo’,‘-’,‘Bold’, ‘Italic’, ‘-’, ‘NumberedList’, ‘BulletedList’, ‘-’, ‘Link’, ‘Unlink’,‘Image’],
-
[‘Styles’,‘Format’,‘Font’,‘FontSize’,‘TextColor’,‘BGColor’],
-
]
-
});
-
-
//]]>
-
</script>
-
</p>
-
<p><%= f.submit “Submit” %></p>
-
<% end %>
Hier seht ihr, dass ich dem textarea Feld die ID “editor1″ gegeben habe. Danach wird per Javascript der Editor (mit ein paar angepassten Optionen) geladen.
Nun sollte euer Contentfeld ungefähr so aussehen:

Praktischerweise erzeugt der Editor einfaches HTML, dass genauso in der Datenbank abgespeichert und ausgebeben werden kann. Natürlich ist hierbei auch auf die Sicherheit zu achten, also niemals ungeprüftes HTML ausgeben.
Ich hoffe, dieses kleine Tutorial konnte euch helfen, schnell und einfach einen WYSIWYG Editor in Rails einzubauen.
Kommentar vom Autor: Es gibt nicht nur die Möglichkeit, einen Javascript-basierten Editor für das erstellen von HTML Inhalten über Formulare zu verwenden, sondern auch Sprachen wie Textile, die die Erstellung von HTML Elementen vereinfachen. Leider sind nach meinen Erfahrungen selbst diese vereinfachten Elemente für den normalen “Wordbenutzer” noch zu komplex. Ich setze lieber auf einen guten WYSIWYG Editor.
Veröffentlicht am Donnerstag, den 21. Januar 2010 um 17:43 Uhr veröffentlicht
Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.
Eine Reaktion zu “WYSIWYG HTML Editor in Rails”
-
Am 21. Januar 2010 um 21:39 Uhr
vielen dank. ich suche aber immer noch einen offline editor für mein wordpress. früher gabs mal einen, der wurde aber nicht weiterentwickelt. leider.
Auf einen Blick
Archiv
- März 2010
- Februar 2010
- Januar 2010
- Dezember 2009
- August 2009
- Juli 2009
- März 2009
- Februar 2009
- Januar 2009
- Dezember 2008
- November 2008
- Oktober 2008
- August 2008
- Juli 2008
- Juni 2008
- Mai 2008
- April 2008
- März 2008
- Februar 2008
- Januar 2008
- Dezember 2007
- November 2007
- Oktober 2007
- September 2007
- August 2007
- Juli 2007
- Juni 2007
- Mai 2007
- April 2007
Kategorien
- Allgemein (88)
- Cake vs Rails (3)
- CakePHP (50)
- Fun (1)
- Meinung (17)
- Projekt (9)
- Rails (13)
- Tipps (31)
- Typo3 (5)
Letzte Einträge:
- 04.03.2010: Rails Quicktipp: Stolperfalle bei “accepts_nested_attributes_for”
- 26.02.2010: DIEVOLUTION.net im neuen Gewand
- 05.02.2010: Neues Projekt Online: www.arminis.de