tinyMCE
heinetz
- javascript
Hallo Forum,
ich arbeite mit tinyMCE. Kennt sich irgendwer damit richtig gut aus ?
Zu meinem Problem:
Auf meiner Website gibt es 'News'. Diese 'News' wird in einem
selbstgestrickten Redaktionssystem mit tinyMCE editiert und
dann der XHTML-Code i.d. Datenbank geschrieben. Im Frontend
wird die News dann dort ausgelesen und angezeigt. Das ganze
funktioniert reibungslos.
Allerings soll die selbe News in einem anderen Bereich angeteasert
angezeigt werden. Sprich: Es sollen nur die ersten z.B. 300 Zeichen
angezeigt werden. Da die News als XHTML-Code vorhanden ist kann ich
das nun leider nicht so:
$teaser = substr('<p>Dies ist <span class="farbe">der</span> Text</p>');
... weil das nicht die ersten 300 Zeichen des Texts sind und
... weil der Code dabei zerstört wird
Meine Idee ist also eine zweite Editor-Instanz in das Readktionssytem
zu bauen, die sich automatisch mit der ertsen abgeleicht (eben die
ersten 300 Zeichen einfügt).
Damit ist durch das tinyMCE-Cleanup gewährleistet, dass deer Code
heil bleibt und ich gehe auch davon aus, dass aus tinyMCE nicht nur
der Code des aktuellen Content heruaszufinden ist, sondern auch etwas
wie JS: .innerText, damit ich die 300 Zeichen irgendwie berechnen kann.
Ich weiss, das ganze ist ziemlich speziell und provoziert sicher
bei dem ein oder anderen den Gedanken, ich solle die Doku dazu
lesen. Also, wenn mir jemand in der Sache eine Tipp geben kann,
oder ausser dem Original-tinyMCE-Forum ein anderes gut frequentiertes
am besten deutsches kennt, würde ich mich freuen.
danke für's lesen und
beste gruesse,
heinetz
... weil das nicht die ersten 300 Zeichen des Texts sind und
... weil der Code dabei zerstört wird
das ist der haken, wenn man ausgabemedienspezifisches zeug direkt in die datenbank schreibt
dir bleibt aber die möglichkeit, den eingegeben text bei der ausgabe zu kürzen (mit einer serverseitigen scriptsprache zb) - dh vorher das markup rauswerfen und dann den text kürzen
Ich weiss, das ganze ist ziemlich speziell und provoziert sicher
bei dem ein oder anderen den Gedanken, ich solle die Doku dazu
lesen.
nein, es ist ein alltägliches problem, welches sich aus der ignoranz der trennung von design und inhalt ergibt - in einer datenbank sollen texte eben medienneutral gespeichert werden - bb-code oder wikisyntax eigent sich zb dafür, erst bei der ausgabe wird der inhalt dann in die eigentlich ausgabesprache geparsed - das ist zwar langsamer als das fertige markup direkt zu speichern, hat aber den vorteil, dass man mehr damit anfangen kann - ob du den text dann als html 4.01, xhtml 1.0, latex oder pdf ausgibst spielt dann keine rolle mehr
danke für's lesen und
gern geschehen
ich gebe Dir natürlich Recht damit. Der Code ist in jedem Fall sauberer
und damit besser zu verarbeiten, wenn er als Reintext gespeichert wird.
Allerdings ist das auch immer eine Frage der Aufgabenstellung:
Wenn gefordert ist, dass ein Redakteur Seiten editieren kann, wie er
will, Formatierungen zugelassen werden sollen, usw. erfüllt so ein
Richtext-Editor wie tinyMCE genau diese Aufgabe. Und zwar sehr gut !
die Frage stellt sich also in meinem Fall garnicht.
beste gruesse,
heinetz
Wenn gefordert ist, dass ein Redakteur Seiten editieren kann, wie er
will, Formatierungen zugelassen werden sollen, usw. erfüllt so ein
Richtext-Editor wie tinyMCE genau diese Aufgabe. Und zwar sehr gut !die Frage stellt sich also in meinem Fall garnicht.
doch, eigentlich schon http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode
bb-code ist relative medienneutral (wenngleich doch etwas in richtung html gewichtet)
die frage ist halt, was der redakteur alles eingeben darf - wenn er den inhalt formatieren darf, ist es ein dilemma und sowieso etwas schief gelaufen, ein editor im backend sollte nur die semantik eines inhalts/artikels bestimmen, nicht aber dessen layout
$teaser = substr('<p>Dies ist <span class="farbe">der</span> Text</p>');
... weil das nicht die ersten 300 Zeichen des Texts sind und
... weil der Code dabei zerstört wird
in einer datenbank sollen texte eben medienneutral gespeichert werden - bb-code oder wikisyntax eigent sich zb dafür
Es ist herzlich wurscht, ob die zusätzlichen Zeichen ein HTML'sches <strong> sind oder ein BB'sches [wichtig]. Das Problem, dass sie nicht mitgezählt und nicht mittendrin getrennt werden dürfen, hat er in jedem Fall. Hätte er zudem auf <span> verzichtet, wäre der HTML-Code auch als medienneutral zu bezeichnen.
Statt der schon vorgeschlagenen striptags()-Methode möchte ich hier noch darauf hinweisen, dass man beim Schreiben des Artikels auch von Hand eine separate Zusammenfassung erstellen könnte. Ein, zwei kurze Sätze kosten nicht viel Zeit und bringen den Artikel besser auf den Punkt als von selbigem ein automatisiert abgehaktes Stück zu präsentieren. Prominentes Beispiel: heise.de.
Es ist herzlich wurscht, ob die zusätzlichen Zeichen ein HTML'sches <strong> sind oder ein BB'sches [wichtig]. Das Problem, dass sie nicht mitgezählt und nicht mittendrin getrennt werden dürfen, hat er in jedem Fall. Hätte er zudem auf <span> verzichtet, wäre der HTML-Code auch als medienneutral zu bezeichnen.
natürlich ist der unterschied zwischen bb-code und html nicht gross (das ist auch bewusst so)
aber wie du schon sagst, ist der <span /> etwas ungünstig
<span class="color red">sss</span> ist imho schwerer zu parsen als [color=red]sss[/color]
[b]text[/b] (bb-code) oder '''text''' (wiki-syntax) kann ich mit einem parser problemlos in <b>text</b>, <span style="font-weight: bold">text</span> oder <strong>text</strong> parsen (natürlich ist die aussage der drei html-möglichkeiten nicht gleich, aber einem normalen redakteur dürfte der unterschied zwischen wichtig und fett ohnehin nicht bewusst sein - man wählt halt eins davon)
wenn ich aber in meinem editor die möglichkeit habe, alle 3 html-varianten zu schreiben, müsste der parser beim umformen in eine andere markup-sprache alle drei methoden (bzw noch viel mehr) kennen - es ist ja auch problemlos möglich <font style="font-weight: bold;">text</font> zu schreiben oder ganz andere dinge
aus diesem grund soll die "medienneutrale" (100%ig gehts leider nicht) markupsprache so einfach wie möglich sein und so wenige elemente wie möglich bereitstellen
Gudn!
$teaser = substr('<p>Dies ist <span class="farbe">der</span> Text</p>');
http://de2.php.net/manual/de/function.strip-tags.php könnte weiterhelfen
Erst tags entfernen und dann abschneiden.
Wobei hier die Frage zu stellen ist, wie performant dieser Weg ist, erst den kompletten Text auszulesen um ihn dann zu kürzen...
Vielleicht hilft auch ein zusätzliches Feld in der Datenbank mit der gekürzten Fassung, das automatisch gefüllt wird bei Update des Haupttextes...
Gruß aus Fürth in Mittelfranken,
Samoht
klasse, vielen Dank !
... das kannte ich noch nicht.
beste gruesse,
heinetz
klasse, vielen Dank !
... das kannte ich noch nicht.
das selbe stand als alternative auch in meinem post drinnen ;)
Gudn!
das selbe stand als alternative auch in meinem post drinnen ;)
Manche brauchen halt was zum anklicken... ;)
Gruß aus Fürth in Mittelfranken,
Samoht
Manche brauchen halt was zum anklicken... ;)
da empfehle ich <http://fun.drno.de/flash/ButtonRedBig.swf das hier>
Gudn!
mit den links hastes heut aber net so... ;)
da empfehle ich das hier
Gruß aus Fürth in Mittelfranken,
Samoht
mit den links hastes heut aber net so... ;)
ja, ich bin nervös :D die vorfreude auf den schmachvollen untergang der deutschen nationalelf lässt mich zittrig und vergesslich werden ;)