Zum Inhalt springen

Eigenes Contentelement und RTE

Erstellt am 17. Februar 2004 · 9 Antworten · letzte Antwort am 24. Februar 2004

Tags: Frage

maxhb ·

Hi!
Habe mir ein eigenes Content-Element erstellt, das zunächst einen sehr einfachen Aufbau hat. Nur Text und ein Bild. Den Text habe ich allerdings nicht als extra Feld eingepflegt, sondern nutze dafür "bodytext" aus der tabelle "tt_content", da dann eine hübsche Vorschau im BE entsteht.
Das Problem ist nun, dass der eingegebene Text bei der Ausgabe im Frontend nicht gerendert wird; er erscheint einfach so wie in der Datenbank.
Bsp.:
In der Datenbank -->

absatz1
absatz2
absatz3

Das wird im FE exakt so ausgegeben, soll heissen, die <P>-tags fehlen 😢

Ändere ich den Typ des Content-Elements nachträglich wieder auf "Text", erscheint prompt die korrekte Ausgabe im FE:

<p>absatz1</p>
<p>absatz2</p>
<p>absatz3</p>

Wie kann cih erreichen, dass mein Content-Element den text auch korrekt darstellt?

CU
maxhb

TW ·

hi auch

das ganze wird ja augenscheinlich nicht richtig geparst....
wird der html parser denn in deinem content objekt angesprochen???

ist ja nur ne möglichkeit....

hatte das problem auch und es lag schlicht daran, dass der content, der aus der datenbank kam nicht durch den parser lief.....

ich weiss nicht mehr genau wo, aber irgendwo muss das neu e objekt angelegt werden....

ich suche mal....
hab das projekt leider nicht mehr da, wo ich es gemacht habe, aber ich gucke!

gruss
thorsten

maxhb ·

Hi!

TW schrieb

das ganze wird ja augenscheinlich nicht richtig geparst....
wird der html parser denn in deinem content objekt angesprochen???

ist ja nur ne möglichkeit....

Das dürfte exakt das Problem sein. Ich lese den Wert eines etxtfeldes direkt per PHP aus und kann dementsprechend auch erstmal nur den blanken Code - so wie er in der DB steht - ausgeben.
Die Frage wäre nur, wie man den Feldinhalt korrekt rendert, folgendes hatte ich mir zusammengereimt, es funktioniert aber nicht...

$this->cObj->TEXT(...);

CU
maxhb

TW ·
maxhb schrieb

Hi!

TW schrieb

das ganze wird ja augenscheinlich nicht richtig geparst....
wird der html parser denn in deinem content objekt angesprochen???

ist ja nur ne möglichkeit....

Das dürfte exakt das Problem sein. Ich lese den Wert eines etxtfeldes direkt per PHP aus und kann dementsprechend auch erstmal nur den blanken Code - so wie er in der DB steht - ausgeben.
Die Frage wäre nur, wie man den Feldinhalt korrekt rendert, folgendes hatte ich mir zusammengereimt, es funktioniert aber nicht...

$this->cObj->TEXT(...);

CU
maxhb

hi
also einmal um das dig aus bodytext zu holen...

$content = trim($this->cObj->data["bodytext"]);

und die ausgabe in der $content...

$content.=$this->cObj->TEXT($conf);

klappt in meinem neuen contetn element damit ganz gut...

gruss
thorsten

maxhb ·
TW schrieb

also einmal um das dig aus bodytext zu holen...

$content = trim($this->cObj->data["bodytext"]);

Soweit klappt es, da steht mein Text drin.

TW schrieb

und die ausgabe in der $content...
$content.=$this->cObj->TEXT($conf);

Leider kommt hier aber nichts raus 😢
BTW, als CType steht für mein Content-Element auch der Name meines Content-Elements, vermutlich kann typo garnicht wissen, wie man das rendert.

Folgendes habe ich an der Tabelle tt_content erweitert:
1. ein Bild
2. Alt-Text für Bild
3. eine Überschrift
4. eine Checkbox

Was ich also möchte ist diese Inhalt selbst rendern. Andererseits soll der "bodytext" aber wie gewohnt ausgegeben werden...

Vielleicht habe ich da auch einen völlig falschen Ansatz gewählt.

CU
maxhb

TW ·

hi hab nochmal gesucht....
ne weitere variante, halt immer nur für den text...

$content = $this->cObj->parseFunc ($text, $this->conf["TEXT."]["20."]["parseFunc."]);

da wird der parser ja direkt angesprochen.....

BTW, als CType steht für mein Content-Element auch der Name meines Content-Elements, vermutlich kann typo garnicht wissen, wie man das rendert.

dann musste eine neues cObj in die tslib_content eintragen.....
ich glaub da war es*grübel*

kann ich jetzt aber nicht mit sicherheit sagen...

da war auch die funktion IMGTEXT.....

$alttext2 = $this->stdWrap($conf["altText2"],$conf["altText2."]);
if ($alttext2) {
$altP = ' alt="'.strip_tags($alttext2).'"';
}

.........
dies sollte in die funktion hineingeschreiben werden....
kann leider nicht genau sagen wo das war....
aber damit sollte der ALT-TEXT ausgegeben werden..

hab immer nur dateiauszüge hier auf meinem rechner, die ich irgendwann mal bearbeitet habe!
daher kann ich das alles nicht mit 100% sagen...

gruss
thorsten

maxhb ·

Hi!
@TW: Danke für Deine Bemühungen. Hab's zwar letztendlich nicht per PHP hinbekommen, aber Deine Hinweise haben mich auf jeden Fall ermuntert am Ball zu bleiben

Letztendlich habe ich dann eine einfache Lösung gefunden, die per TS funktioniert. Einfach folgendes ins Template schreiben und alle Sorgen sind wie weggeblasen ;-)

plugin.tx_meineExtension_pi1.text < tt_content.text

CU
maxhb

TW ·
maxhb schrieb

Hi!
@TW: Danke für Deine Bemühungen. Hab's zwar letztendlich nicht per PHP hinbekommen, aber Deine Hinweise haben mich auf jeden Fall ermuntert am Ball zu bleiben

Letztendlich habe ich dann eine einfache Lösung gefunden, die per TS funktioniert. Einfach folgendes ins Template schreiben und alle Sorgen sind wie weggeblasen ;-)

plugin.tx_meineExtension_pi1.text < tt_content.text

CU
maxhb

ermuntern tue ich doch gerne 😉

aber das war klar, das es so einfach sein würde #giggle#

beste grüsse

maxhb ·

Hi!

TW schrieb

aber das war klar, das es so einfach sein würde #giggle#

habe gerade herausgefunden, das es sogar noch einfacher sein kann. Wenn man in der tca.php seiner Extension den transform_mode eines RTE Feldes auf css stellt (ist standardmässig auf ts eingestellt), dann schreibt der RTE gleich richtiges HTML in die Datenbank, so dass man einfach das Feld per PHP auslesen und ausgeben kann...

Viele Wege führen nach Rom, aber nochr mehr Wege zum eigenen Typo3 Auftritt ;-)

CU
maxbh

TW ·
maxhb schrieb

Hi!

TW schrieb

aber das war klar, das es so einfach sein würde #giggle#

habe gerade herausgefunden, das es sogar noch einfacher sein kann. Wenn man in der tca.php seiner Extension den transform_mode eines RTE Feldes auf css stellt (ist standardmässig auf ts eingestellt), dann schreibt der RTE gleich richtiges HTML in die Datenbank, so dass man einfach das Feld per PHP auslesen und ausgeben kann...

Viele Wege führen nach Rom, aber nochr mehr Wege zum eigenen Typo3 Auftritt ;-)

CU
maxbh

#evil# und ich hab mir den ast abgeschrieben mit den php dateien......die zu modifizieren...
na ja.........

thx für den einfachen weg.... #giggle#

gruss
thorsten