| Weitere Artikel aus dem Webentwickler Blog |
| Teilen |
Content Management Systeme - Typo3 - Scripts
Das Template-System Fluid in TYPO3
Um die im der Version 5 angestrebte Trennung von Logik und Präsentation zu erreichen, musste das Template-System von TYPO3 von Grund auf renoviert werden. Denn ein View in einem Model-View-Controller-System kann sehr viel mehr leisten als ein relativ statisches System, wie es die herkömmlichen Subparts und Marker darstellen.
Hier setzt TYPO3 nicht auf eine vorhandene Lösung wie Smarty, sondern bringt ein komplett neues Template-System namens Fluid ins Spiel, das in TYPO3 5.0 zur Standard-Template-Engine wird und auch bereits in TYPO3 4.3 zur Verfügung steht.
Ein Fluid-Template ist eine normale HTML-Seite, in der Variablen eingebettet sind. Diese werden vom Controller mit Werten gefüllt.
Die Zeile
$this->view->assign('blogTitle', $blog->getTitle());
im Controller erzeugt einen String, der im Template ausgegeben werden kann mit:
<h1>{blogTitle}</h1>
Im Gegensatz zu vielen Template-Systemen kann in Fluid der Controller aber auch ein komplettes Objekt übergeben:
$this->view->assign('blog', $blog);
Diese Zeile übergibt den Blog als Objekt, und der View kann mit {blog.title} direkt auf Elemente des Objekts zugreifen (genau gesagt wird mit {blog.title} von der Template-Engine die Methode $blog->getTitle() aufgerufen).
Darüber hinaus lassen sich im Template spezielle Tags (sogenannte View Helper) einsetzen. So kann beispielsweise der Controller das komplette Ergebnis einer Datenbankabfrage an den View übergeben, in dem das Resultat mittels einer Schleife dargestellt wird:
Title: {post.title}
Durch die Verschiebung dieser Funktionalitäten in den View wird der Controller komplett von solchen Aufgaben befreit, sodass er keinerlei HTML-Code erzeugen muss.
Ein komplexeres Beispiel ist der View für das Editieren eines Blogs aus der Extension blog_example:
<div class="csc-header csc-header-n1">
<h1 class="csc-firstHeader">Edit blog "{blog.title}"</h1>
</div>
Edit the information about your blog below:
<label for="title">Title</label>
<label for="description">Description</label>
<label for="administrator">Administrator</label>
<select><option>dummy</option></select>
![]() | Extensions für TYPO3 Produktart: Buch 30,00 € |



































