T3 Campus T3 Campus

Fluidtemplates in TYPO3 jederzeit rendern

Ich zeige dir wie du Fluidtemplates jederzeit in TYPO3 rendern kannst, um HTML E-Mails zu versenden oder HTML basierte PDF Dateien zu generieren.

Fluid ist eine mächtige und sehr schöne Templatengine. Sie ist die erste in der ich wirklich kein PHP Code brauche. Es ist alles zu 100% xHTML.

Die Seitentemplates als auch die Templates für Frontend Plugins werden in Fluid geschrieben. Das funktioniert soweit sehr gut. Doch manchmal steht man vor der Herausforderung, dass man gerne HTML Templates nutzen möchte innerhalb eines Controllers oder einer Klasse, um dann im Anschluss mit diesem HTML Code weitere Prozesse anuzstoßen. Die klassischen Anwendungsbeispiele sind dafür der E-Mailversand oder die Generierung von PDF Dateien aus einer HTML Datei.

Wie lassen sich Fluidtemplates überall in TYPO3 einsetzen?

Für solche Aufgaben gibt es in TYPO3 die Klasse: StandaloneView. Die View bezeichnet in TYPO3 die Templatebene, also genau was wir wollen. Die Klasse StandaloneView gibt uns nun die Möglichkeit jeder Zeit eine View zu erstellen, sie mit Variablen zu füttern und die HTML Ausgabe rendern zu lassen. Diese HTML Ausgabe können wir dann in einer Variable speichern und weiterverarbeiten.

Wir müssen dazu eine neue Instanz der StandaloneView erzeugen, die Viewordner für Layouts, Templates und Partials und die Templatedatei angeben. Danach können wir Variablen der View übergeben und mit einem Funktionsaufruf das Rendering auslösen. Der Rückgabewert ist dann das fertige HTML als Stringwert. Das schöne hierbei ist, das wir alle ViewHelper nutzen können als wäre es eine View für eine Actionfunktion.

Im Code sehen diese Schritte wie folgt aus:

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Fluid\View\StandaloneView;

$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$standaloneView = $objectManager->get(StandaloneView::class);
$templatePath = GeneralUtility::getFileAbsFileName('EXT:campus_secondextension/Resources/Templates/Main.html');

$standaloneView->setFormat('html');
$standaloneView->setTemplatePathAndFilename($templatePath);
$standaloneView->assign('varariable1', $variable1);

$html = $standaloneView->render();

Sind das nicht schöne Zeilen Code :)

Bereit mehr zu lernen?

Dann komme in meine TYPO3 Onlineschule

Als Mitglied des T3 Campus für TYPO3 Schulungen erhältst du eine einzigartige Lernplattform, um professionelle Webseiten mit TYPO3 zu erstellen. Egal, ob du ein Einsteiger, Umsteiger oder bereits erfahren bist – hier findest du die passenden Lernvideos für dich.

Kevin Chileong Lee

Gründer vom T3 Campus, TYPO3 Experte mit 10+ Jahren Erfahrung, TYPO3 Liebhaber.

Ich helfe dir dabei, deine Projekte in TYPO3 umzusetzen.

Insbesondere für TYPO3 Einsteiger biete ich zahlreiche kostenfreie Tutorials und kostenpflichtige Kurse rund um TYPO3 an.
Damit kannst du in wenigen Tagen auch ohne Vorkenntnisse deine erste TYPO3 Webseite erstellen und Erweiterungen programmieren.

Auf meinem YouTube-Kanal findest du viele praktische Beispiele und Videotutorials als auch allgemein Videos zu diversen TYPO3 Themen.

Neber den TYPO3 Tutorials und Kopiervorlagen, schreibe ich auch Artikel auf meinem Blog über diverse Themen und Fragen, die die meisten TYPO3 Einsteiger, haben.

Falls du ein TYPO3 Coaching suchst, dann stehe ich dir in einer 1:1 Trainingssession zur Verfügung.

Wenn du auf dem Laufenden sein möchtest über meine Projekte, dann abonniere den Newsletter.