Extbase: Text als RTE formatieren

Um Textfeld als RTE zu formatieren gibt es mehrere Möglichkeiten:

Fluid Rendering

Die einfachste Möglichkeit ist das Rendering über Fluid – man übergibt die Variable und f:format.html übernimmt den Rest.

<f:format.html>{textfield}</f:format.html>

Standardmäßig wird dabei folgendes gesetzt: parseFuncTSPath=“lib.parseFunc_RTE“. Hier kann man auch eine eigene parseFunc übergeben:

<f:format.html parseFuncTSPath="lib.myParseFunc">{textfield}</f:format.html>

Extbase RTE Formatierung

Früher gab es dafür die Funktion pi_RTEcssText(). Diese ist im Rahmen der piBased Kompatibilität über das AbstractPlugin noch verfügbar:

\TYPO3\CMS\Frontend\Plugin\AbstractPlugin: 
public function pi_RTEcssText()

Unter Extbase kann man sich auch einfach eine entsprechende Funktion erstellen:

/**
 * @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
 * @inject
 */
protected $configurationManager;

public function formatRTE($str) {
 $output = $this->configurationManager->getContentObject()->parseFunc($str, array(), '< lib.parseFunc_RTE');
 return $output;
}

alternative Möglichkeiten für das laden von cObj:

public function formatRTE($str) {
   //if available, use: 
   $cObj = $this->objectManager->get('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjenctRederer');
   //else: $cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjenctRederer'); 
   $output = $cObj->parseFunc($str, array(), '< lib.parseFunc_RTE'); 
   return $output; 
}

Links und Quellen:

3 Gedanken zu „Extbase: Text als RTE formatieren

  1. Ich verwende den RTE in einer eigenen Extension. Im RTE-Content ist ein Link auf eine interne Page enthalten. Sowohl f:format.raw als auch f:format.html geben diesen Link als Typolink (t3://…) aus, womit er natürlich nicht mehr geöffnet werden kann. Ist da seitens Fluid / vhs beim Rendern etwas Besonderes vorgesehen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.