Frage zu CMS
Markus
- php
Hi
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.
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.
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.
Vielleicht könnt ihr mir ja ein paar Tipps geben, ich stehe hier irgendwie an.
Bye, Markus
hallo,
es gibt n supergeilen editor http://www.interactivetools.com/products/htmlarea/ ohne scheiss, der geht ab wie die sau
gruss
Hallo,
Inhalt und Layout getrennt sind.
Teile davon fett schreiben, ein Bild einfügen, einen Link einfügen,
Gehören denn auszeichnungen des Textes nicht auch zum Inhalt? Oder ein Bild oder Link?
etc. Dann muss ich erst recht wieder HTML mitten im Text verwenden.
Ich würde hier auf BBCode setzen wie mit der Klasse von Christian: http://www.christian-seiler.de/projekte/php/bbcode/. Da kannst du alles einstellen so wie du das haben willst und kannst das erlauben was du für sinnvoll hältst.
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,
IHMO gehört das auch zum Inhalt
zum anderen habe ich damit nicht die gleichen Möglichkeiten wie mit HTML.
Man kann mit weniger Mitteln nicht die gleichen Möglichkeiten haben.
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?
Ich denke die machen das auch mit einer Art bbcode. Außerdem haben die da nicht so viel Textformatierung wie man es sich mit HTML erlauben könnte, die beschränken sich auf das wesentliche. So wie ich das sehe haben die da nur ein paar Überschriften, Links, Listen und Bilder. Das alles kannst du mit bbcode auch ganz leicht nachbauen sogar noch viel mehr.
Auf meiner Seite werden dann nämlich auch Leute Text schreiben, die keine Ahnung von HTML haben.
Ich denke das kommt sehr sehr häufig im Internet vor.
Vielleicht könnt ihr mir ja ein paar Tipps geben, ich stehe hier irgendwie an.
Dann gibt es noch ein Ding was vielleicht von Bedeutung für dich wäre (nur Mozilla ab 1.3beta+):
http://www.interactivetools.com/staff/ben/htmlarea3_demo/example.html
http://www.deftone.com/blogzilla/archives/turn_any_textarea_into_a_wysiwyg_editor.html
Für den IE gibt es auch so was ähnliches, wirst du schon irgendwo finden.
Grüße
Jeena Paradies
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
Danke, ich halte einen WYSIWYG Editor auch für übertrieben. Um unterschiedliche Layouts geht es mir auch gar nicht, sondern eben um die Möglichkeit, dass man auch einen Link einfügen kann, wenn man ihn gerade braucht, kennt man ja zb. von Heise. Tabellen und so brauche ich gar nicht. Also werde ichs wohl am ehesten mit BBCode machen, der Nachteil dabei ist eben nur, dass man Eigenschaften wie Breite und Höhe eines Bildes nur sehr umständlich definieren kann.
Hallo,
der Nachteil dabei ist eben nur, dass man Eigenschaften wie Breite und Höhe eines Bildes nur sehr umständlich definieren kann.
Aber im Endeffekt kannst du das ja auch weglassen und der Browser rändert die Seite einfach nur ein bisschen länger.
Grüße
Jeena Paradies
Moin!
der Nachteil dabei ist eben nur, dass man Eigenschaften wie Breite und Höhe eines Bildes nur sehr umständlich definieren kann.
Aber im Endeffekt kannst du das ja auch weglassen und der Browser rändert die Seite einfach nur ein bisschen länger.
1. Der Browser "rendert", er "rändert" nicht. :)
2. Wie groß eine Grafik ist, kann man die Grafik ja selbst mal fragen, die weiß sowas nämlich: getimagesize(). Sie per Browser kleiner oder größer zu machen sieht immer unprofessionell aus.
- Sven Rautenberg