Hallo zusammen,
hoffe bin in diesem Forum richtig...
Ich hab ein kleines Problem: Ich entwickle derzeit ein Extension fürs Frontend. Hierbei hat der Besucher die Möglichkeit Daten einzugeben und zu speichern. Eines der Felder ist ein RTE Textarea.
Für das Einbinden hab ich mich an die Dokumentation ausm Repository gehalten (vgl. http://typo3.org/documentation/document-library/extension-manuals/rtehtmlarea/1.4.4/view/6/2/).
Das Problem ist nur folgendes, wenn das Formular in die Datenbank gespeichert werden soll werden die RTE Änderungen nicht übernommen. D.h. in den piVars wird lediglich der ursprüngliche defaultValue aus der Datenbank weitergeleitet und erneut gespeichert, nicht aber die Änderungen, die ich zwischenzeitlich im RTE vornehme (neuer Text, Formatierung). Der RTE als solches wird jedoch korrekt angezeigt und arbeitet auch korrekt, bis zum Zeitpunkt des Speicherns. Bei anderen Feldern (text, textarea, checkbox, select, hidden) klappt das jedoch im gleichen Formular perfekt.
Einzige Idee, die ich hatte, war den aktuellen Textarea value per JS in ein hidden field zu kopieren. Das läuft aber auch nicht so richtig und wäre doch arg dirty.
Zur Sicherheit hier nochmal den entsprechenden PHP Code von mir:
Aufruf des RTE:
if(!$this->RTEObj)
{
$this->RTEObj = t3lib_div::makeInstance('tx_rtehtmlarea_pi2');
}
if($this->RTEObj->isAvailable())
{
$this->RTEcounter++;
$this->table = $this->projectstable;
$this->field = 'central_question';
$this->strEntryField = 'central_question';
$this->formName = 'projectsform';
$this->PA['itemFormElName'] = $this->prefixId.'[central_question]';
$this->PA['itemFormElValue'] = $row['central_question'];;
$this->thePidValue = $GLOBALS['TSFE']->id;
$RTEItem = $this->RTEObj->drawRTE($this, $this->projectstable, 'central_question', $row=array(), $this->PA, $this->specConf, $this->thisConfig, $this->RTEtypeVal, '', $this->thePidValue);
$markerArray['###ADDITIONALJS_PRE###'] = $this->additionalJS_initial.'
<script type="text/javascript">'. implode(chr(10), $this->additionalJS_pre).'
</script>';
$markerArray['###ADDITIONALJS_POST###'] = '
<script type="text/javascript">'. implode(chr(10), $this->additionalJS_post).'
</script>';
$markerArray['###ADDITIONALJS_SUBMIT###'] = implode(';', $this->additionalJS_submit);
$markerArray['###FIELD_CENTRAL_QUESTION###'] = $RTEItem;
}
Und hier ein Auszug aus der Verarbeitung des Formulars:
if(!$this->RTEObj)
{
$this->RTEObj = t3lib_div::makeInstance('tx_rtehtmlarea_pi2');
}
if($this->RTEObj->isAvailable()) {
$pageTSConfig = $GLOBALS['TSFE']->getPagesTSconfig();
$RTEsetup = $pageTSConfig['RTE.'];
$this->thisConfig = $RTEsetup['default.'];
$this->thisConfig = $this->thisConfig['FE.'];
$central_question = $this->RTEObj->transformContent('db',$this->piVars['central_question'], $this->projectstable, 'central_question', $this->piVars, $this->specConf, $this->thisConfig, '', $this->thePidValue);
}
$central_question landet dann im $fields_value Array.
Findet jemand von euch den Fehler, der mir einfach nicht ins Auge springen will?
Vielen Dank schonmal im voraus!
Patrick