Zum Inhalt springen
Der Guide für ein smartes Leben.
Zeitreise

Ausgabe

Autoren: Redaktion pcmagazin und Tobias Hauser • 9.7.2010 • ca. 2:05 Min

Hier führen Sie noch eine Änderung durch: In die Klasse für den Controller fügen Sie den neuen Extensionnamen ein, sie heißt nun also Tx_Newext_Controller_StartController. Hier das Grundgerüst: ...

Hier führen Sie noch eine Änderung durch: In die Klasse für den Controller fügen Sie den neuen Extensionnamen ein, sie heißt nun also Tx_Newext_Controller_StartController. Hier das Grundgerüst:
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.

Typo3 mit Fluid
Aufbau: Die Erweiterung ist in zwei Hautpverzeichnisse Classes und Ressources unterteilt.
© Archiv

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');