Der Controller steuert Hauptsächlich den Ablauf. Er sagt dem Repository welche Daten er von der Datenbank braucht und wenn er alle Daten hat gibt er diese an die View weiter.
Zu deinem konkreten Problem:
Du hast ein Plugin was du ja dann auf deiner Seite einfügst.
In der ext_localconf.php sagst du welche Actionen dein Plugin ausführen darf (also welche Action vom Controller ausgeführt wird). Wenn du nur die Ausgabe des Textes haben willst würde ich alles bis auf show aus dem Array nehmen.
Wenn die Seite dann im FE aufgerufen wird wird die showAction des Controllers ausgeführt.
Du willst einen Text ausgeben, der in der Datenbank steht und auch das Datum steht dort also muss das Repository arbeiten.
Da dies keine "übliche" Abfrage ist brauchst du eine neue Funktion dafür.
Schritt 1:
im Controller (Funktion showAction) rufst du die neue Funktion auf und speicherst die Rückgabe
$text = $this->myRepository->findOlder();
Schritt 2:
Im repository wird nun die Funktion findOlder aufgerufen diese musst du natürlich schreiben:
public function findOlder()
{
$query = $this->createQuery();
$query->matching($query->lessThan("cdate", time()-2419200));
return $query->execute()->getFirst();
}
Schritt 3:
Der Controller bekommt die Daten vom Repository und diese müssen jetzt an die view übergeben werden:
$this->view->assign('alterText', $text);
Das Model ist im grundegenommen dafür da, um Daten bereitzustellen.
Beispiel:
du hast ein Produkt und speicherst den netto Preis und die Mehrwehrtsteuer.
willst du den Brutto Preis ausgeben kriegst du das nicht direkt aus der Datenbank und fluid soll nur Daten ausgeben nicht berechnen (kann es glaub ich auch nicht 😉
Das Model muss also aus den vorhandenen Daten den Bruttopreis berechnen.
getBrutto()
{
return $this->price * $this->mwst;
}
im Fluid kannst du dann mit {product.getBrutto} (bin mir nicht ganz sicher ob der aufruf so klappt) dann diese Daten vom Model ausgeben.
P.S.
vor mir haben sich bereits 18 Leute diesen Thread angesehen, und obwohl es eine simple Frage ist die wohl fast jeder beantworten kann hat keiner sich die Zeit genommen kurz zurückzuschreiben.