Hallo, 

mein Problem mit mehreren Instanzen des RTE im Frontend ist leider immer noch 
nicht gelöst. Ich konnte es zwar etwas eingrenzen (und fürs erste auch einen 
Patch bauen), aber eine Lösung habe ich noch nicht. 

Das Problem scheint in der Datei class.tx_rtehatmlarea_pi2.php liegen. Zunächst 
die Zeile 241: 

$GLOBALS['TSFE']->additionalHeaderData['rtehtmlarea'] = $pageRenderer->render();

der erste Aufruf ergänzt korrekt um die Headerdaten (ExtJS, sonstiges 
JavaScript, CSS). Der zweite Durchlauf enthält aber dann die komplette Seite (= 
bodyContent im t3lib_PageRenderer-Objekt). Warum das der Fall ist, konnte ich 
noch nicht rausfinden. Abhilfe ist das hier: 

unset($this->pageRenderer);
kurz vor 
$this->pageRenderer = t3lib_div::makeInstance('t3lib_PageRenderer');

Anstatt also das pageRenderer-Objekt mehrmals zu nutzen patche ich momentan die 
class.tx_rtehatmlarea_pi2 so, dass die Instanz vor jedem Aufruf gelöscht und 
neu instanziiert wird. Das ist natürlich nicht so effektiv wie eine mehrfache 
Nutzung und ausserdem ein Patch, den ich immer wieder machen muss, nach jedem 
Update. 

Wenn also jemand eine Idee hat, woran es letztendlich wirklich liegen könnte, 
wäre ich sehr dankbar. Da ich über Google schier gar nichts finde, gehe ich 
davon aus, dass das Problem eben nicht immer auftritt, wenn der RTE mehrmals im 
Frontend eingesetzt wird. Auch wenn es bei mir in mehreren TYPO3-installationen 
so ist ... 

Danke
Peter


Am 23.12.2011 um 16:03 schrieb Peter Linzenkirchner:

> Hallo, 
> 
> ich habe folgendes Problem in TYPO3 4.5.4 bis 4.5.10: 
> 
> ich möchte in einer Extension den RTE im Frontend verwenden und zwar in 
> mehreren Feldern. In einem Feld habe ich keine Probleme. Aber bei zwei oder 
> mehr Feldern erhalte ich kurioser Weise den Body-Tag zweimal ausgegeben. Und 
> zwar reicht dazu folgende Zeilen in der Extension: 
> 
> 
> require_once(PATH_tslib.'class.tslib_pibase.php');
> require_once(t3lib_extMgm::extPath('rtehtmlarea').'pi2/class.tx_rtehtmlarea_pi2.php');
> 
> 
> class tx_ioevexample_pi2 extends tslib_pibase {
>       // die normalen Definitionen wie in jeder pibase Extension
> 
> }
> 
> function main($content, $conf) {
>       // die normalen Ausgaben wie bei jeder pibase-Extension, danach dann 
> das hier: 
>               // RTE
>               if(!$this->RTEObj)  $this->RTEObj = 
> t3lib_div::makeInstance('tx_rtehtmlarea_pi2');
>               if($this->RTEObj->isAvailable()) {
>                       $RTEItem = $this->RTEObj->drawRTE();
>                       $RTEItem2 = $this->RTEObj->drawRTE();
>               }
> 
> --- 
> 
> es reicht also ein zweimaliger Aufruf von $this->RTEObj->drawRTE() aus, um 
> einen doppelten Body-Bereich zu erhalten. Dabei lasse ich die Extension noch 
> gar nichts ausgeben ... Wie gesagt, ein einzelnes Feld bekomme ich problemlos 
> zum Laufen. Das zweite Feld funktioniert an sich auch, aber ich bekomme zwei 
> komplette Seiten übereinender (eben doppelte body-Ausgabe). Getestet in zwei 
> Installationen, mit deaktivierten Extensions. Nur System und meine ... Eine 
> installation verwendet templaVoila, die andere fluid Templates. 
> 
> Ausserdem bekomme ich im Quelltext noch diesen ominösen Platzhalter: 
> <!--###POSTJSMARKER###-->
> 
> Weiß irgendjemand, was hier passiert, oder kann mir einen Tipp geben? 
> 
> Danke!
> Peter
> 
> --
> Xing: http://www.xing.com/profile/Peter_Linzenkirchner
> Web: http://www.typo3-lisardo.de
> Facebook: http://tinyurl.com/lisardo-multimedia
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

--
Xing: http://www.xing.com/profile/Peter_Linzenkirchner
Web: http://www.typo3-lisardo.de
Facebook: http://tinyurl.com/lisardo-multimedia

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an