Moin!
ich möchte eine größere Webseite so realisieren, dass Inhalt und Layout getrennt sind. Allerdings kann ich mir irgendwie nicht vorstellen wie das so 100% klappen soll. Irgendwie muss ich den Text doch layouten, zb. Teile davon fett schreiben, ein Bild einfügen, einen Link einfügen, etc. Dann muss ich erst recht wieder HTML mitten im Text verwenden.
_MUSST_ du das wirklich? Layouten, meine ich. Das ist dann doch ein Widerspruch in sich, denn du wolltest doch Inhalt vom Layout trennen. Und wenn du das Layout in deinen Templates bestimmst, bleibt bei der Inhaltseingabe eben nur noch der Inhalt übrig - ohne Layout.
Es gibt da eigentlich genau zwei Ansätze:
1. Der Redakteur kann mit einem Javascript-aufgemotzten WYSIWYG-Editor ungefähr alles das machen, was er auch von Word her gewohnt ist - funktioniert mit IE und Mozilla, wenn man den richtigen Editor für sowas nimmt. Heraus kommt dann HTML-Quellcode, den der Redakteur auf Wunsch auch direkt bearbeiten kann. Und wenn der Editor nicht funktioniert, muß der Redakteur Quelltext direkt eingeben.
2. Für alle Inhalte gibts irgendein Formularfeld, in das der Redakteur ausschließlich Text eingeben kann. Die Formatierung ist fest vorgegeben durch das Template - und mitten im Text Fettschrift oder Kursiv einzubauen ist dann eben nicht möglich. Sieht in den allermeisten Fällen auch reichlich doof aus, mittendrin ein Wort hervorheben zu wollen.
Diese zwei Ansätze haben natürlich Auswirkungen auf das CMS. Im ersten Fall kommt vom Formular gültiger HTML-Code, der entsprechend behandelt werden will. Das birgt beispielsweise die Gefahr, dass böse Redakteure dir schädliche Inhalte schicken, z.B. mit Javascript drin. Wenn du das nicht rausfilterst, sondern 1:1 zum Besucher schickst, ist das potentiell böse. Wahlweise kann der Redakteur dir auch dein tolles Design zerstören, weil der Editor blöde Vorformatierungen eingestellt hat (typischer Kandidat sind %-breit definierte Tabellen, die im IE die Prozent immer auf die Fensterbreite beziehen, während die korrekte Methode wäre, die aktuell verfügbare Breite des umgebenden Containers zu nehmen).
Der zweite Fall schickt ausschließlich Textinformation. Alles, was da quelltextartig drinsteht, wird quelltextartig als Zeichenkombination zum Besucher geschickt, wirkt dort aber nur als sinnlose Textdarstellung - nicht aber als aktives Skript.
Wenn du tatsächlich Links innerhalb des Textes anklickbar haben willst, bleibt dir immer noch die Möglichkeit, bei Methode 2 den eingegebenen Text auf URLs und Mailadressen (sofern die auch ersetzt werden sollen) zu prüfen - oder du hast einen extra Bereich dafür, in dem der Redakteur die Links an passender Stelle eingibt.
Oder ich nehme speziellen Code, zb. [b] für fettschrift und ersetze den dann. Das hat aber zum einen den Nachteil, dass es genauso wie HTML auch wieder mitten im Text steht, zum anderen habe ich damit nicht die gleichen Möglichkeiten wie mit HTML.
Das wäre die einzige Methode, wenn du wirklich fetten Text mitten im Textfeld benötigst und Methode 2 gewählt hast.
Ich habe echt keine Idee wie sowas am besten umzusetzen wäre. Wie machen das denn größere Seiten, zb. Heise? Wenn da ein Redakteur keine Ahnung von HTML hat? Auf meiner Seite werden dann nämlich auch Leute Text schreiben, die keine Ahnung von HTML haben.
Wie gesagt: Die zwei grundsätzlichen Ansätze habe ich beschrieben, und ich persönlich präferiere Methode 2. Da hat man weniger Probleme, den Redakteur zu zwingen, das vorgesehene Layout mit Informationen zu füllen, ohne dies dabei zu zerstören.
Methode 1 ist dann geeignet, wenn die dadurch entstehende Freiheit beim Eingeben der Inhalte nicht mißbraucht wird. Sie ist dann angebracht, wenn nicht zehn oder mehr verschiedene Redakteure unterschiedliche Ansichten über die Textformatierung hegen und pflegen, sondern wenn alle sich tatsächlich an einheitliche Richtlinien halten - sowas ist typischerweise einfacher, je weniger Redakteure es gibt. Bei nur einem einzigen Redakteur wird dieser sich eher eines einheitlichen Stiles befleißigen. :) Erfahrungswerte...
- Sven Rautenberg