Zeitreise
Ausgabe
- Typo3 mit Fluid
- efempty anpassen
- Weitere Anpassungen und newext
- Ausgabe
- Weitere Varianten, Aufwärtskompatibilität
class Tx_Newext_
Controller_StartControllerextends Tx_Extbase_MVC_Controller_ActionController {
public function initializeAction() {
}
public function indexAction() {
//Code für die Standard-Action
}
}
Im nächsten Schritt lohnt ein Blick in den Code der Methode indexAction(). Sie tätigt aktuell vier Ausgaben. Für eine eigene Erweiterung können Sie sich für eine der Varianten entscheiden. Alle Ausgaben erfolgen über das view-Objekt.
Die eigentliche Ausgabe wird dann mit Fluid in einer HTML-Datei gesteuert. Diese Datei finden Sie im Ressources-Verzteichnis und dort unter Private/Templates/Start. Start ist dabei der Name des Controllers. Die Datei selbst heißt nach der Action index.html.Dass hier Fluid am Werke ist, erkennen Sie an den Tags mit dem Namespace f. Das erste Tag <f:layout> verweist direkt auf ein Standardlayout. Dieses Standardlayout findet sich in der Dateistruktur unter Ressources/Private/Layout. Es besteht standardmäßig nur aus einer <h1>-Überschrift, zwei horizontalen Linien und zwei Fluid-Platzhaltern.

Der erste stellt die Systemmeldungen dar, der zweite den eigentlichen Inhalt in Form eines sogenannten Bereiches. Ein Layout kann mehrere Bereiche haben. Diese Bereiche werden dann im Template für die Action referenziert.
<h1>Ihre neue Erweiterung!</h1><hr /><f:renderFlashMessages class=
"tx-newex-flash-message" /><f:render section="content" />
Nun zurück zur index.html. Dort finden Sie in Fluid zuerst das <f:section>-Tag, das genau auf den Bereich content referenziert. Neue Bereiche fügen Sie hier einfach als weitere <f:section>-Tags hinzu. Sie müssen nur noch darauf achten, dass diese im Layout auch vorhanden sind.
Innerhalb des Bereichs sind dann die Fluid-Platzhalter in geschweiften Klammern eingebunden. Ihren Namen können Sie einfach anpassen und so viele neue definieren, wie Sie möchten. Hier das Beispiel mit leicht angepassten Namen:
<f:layout name="defaultLayout" /><f:section name="content"><p>{platzhalter1}</p><p>{platzhalter2.0} {platzhalter2.1}
{ platzhalter2.2}</p><p>{platzhalter3.wert1}
{platzhalter3.wert2} {platzhalter3.wert3}</p><p>{platzhalter4.title}</p></f:section>
Bei den Platzhaltern erkennen Sie, dass sich die Methode der Anbindung jeweils unterscheidet. Platzhalter 1 wird direkt als String ausgegeben, die anderen drei besitzen jeweils durch einen Punkt getrennt eine zweite Angabe. Was da ausgegeben wird, wird klar, wenn Sie noch mal einen Blick in die indexAction werfen.
Die einfachste Variante ist ein String, der direkt ausgegeben wird. Sie ist hier schon leicht angepasst. Der erste Parameter der Methode assign() für die View ist der Platzhaltername, bei uns also platzhalter1, der zweite ist der String, der angezeigt wird:
$this->view->assign('platzhalter1',
'Ausgabe von Platzhalter 1');