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

Weitere Varianten, Aufwärtskompatibilität

Autoren: Redaktion pcmagazin und Tobias Hauser • 9.7.2010 • ca. 1:45 Min

Inhalt
  1. Typo3 mit Fluid
  2. efempty anpassen
  3. Weitere Anpassungen und newext
  4. Ausgabe
  5. Weitere Varianten, Aufwärtskompatibilität

Die zweite Variante ist ein Array mit drei Werten. Diese Werte werden in der index. html einfach über den Index, also 0, 1 und 2 angesprochen:...

Die zweite Variante ist ein Array mit drei Werten. Diese Werte werden in der index. html einfach über den Index, also 0, 1 und 2 angesprochen:

$array = array('Wert 1','Wert 2',
'Wert 3');
$this->view->assign('platzhalter2',
$array);

Die dritte Variante verwendet einen assoziativen Array mit Schüssel/Wert-Paaren, um den Platzhalter zu befüllen. Auf die Schlüssel wird in Fluid direkt zugegriffen. Die Syntax ist hier platzhaltername.schluesselname.

$array = array('wert1' => 'Wert 1',
'wert2' => 'Wert 2', 'wert3' => 'Wert 3');
$this->view->assign('platzhalter3',
$array);

Die vierte Variante ist die komplexeste, aber legt auch schon den Grundstein für den MVC-Ansatz. Hier wird ein Model namens Start verwendet. Den Namen des Models passen Sie mit dem neuen Extension-Key an, ersetzen im Klassennamen also Efempty durch Newext beziehungsweise durch den von Ihnen gewählten Extension-Key:

$start = new Tx_Newext_Domain_
Model_Start;
$start->setTitle("Ein Model mit
Titel!");
$this->view->assign('platzhalter4',
$start);
Typo3 mit Fluid
Angepasst: Die Ausgangserweiterung wurde umbenannt und mit neuen Platzhaltern und Werten befüllt.
© Archiv

Diese Änderung müssen Sie nun auch noch im Model selbst durchführen. Dort ersetzen Sie ebenfalls den alten Klassennamen Tx_Efempty_Domain_Model_Start durch Tx_Newext_Domain_Model_Start. Ansonsten ist die Model-Klasse aktuell recht unspektakulär. Sie definiert die Eigenschaften des Models. Sie kümmert sich selbst nicht um die Datenspeicherung.Dies erledigt wenn nötig ein Repository, wie Sie es etwa im blog_example vorfinden.

class Tx_Newext_Domain_Model_Start
extends Tx_Extbase_DomainObject_AbstractEntity {
protected $title = '';
public function __construct() {
}
public function setTitle($title) {
$this->title = $title;
}
public function getTitle() {
return $this->title;
}
}

Unter Umständen wird die Änderung nicht sofort erkannt, zum Beispiel wenn Sie Caching für die Action aktiviert haben. In diesem Fall reicht es meist aus, den Typo3-Cache zu löschen. Damit steht das Model dann in der View zur Verfügung. Der Zugriff erfolgt mit dem Platzhalter und dann der jeweiligen Eigenschaft des Models.

Aufwärts kompatibel

Wer heute bereits umfangreichere Typo3-Erweiterungen plant, sollte auf jeden Fall einen Blick auf extbase und fluid werfen. Zum einen macht es Sinn, sich schon jetzt mit den neuen Prinzipien von Flow3 und Typo3 5.0 zu beschäftigen, zum anderen lockt das Versprechen nach weitgehender Aufwärtskompatibilität. Und der Aufwand hält sich für einfachere Erweiterungen auch in Grenzen.

Bleibt abzuwarten, was die Zukunft noch bringt. Heiß ersehnt ist natürlich die finale Version des Extbase-Kickstarters, der dann das Kopieren und Adaptieren eines leeren Containers wie es dieser Workshop zeigt, überflüssig machen wird.