Hallo Community,
an manchen Stellen im System brauch man Informationen einfach überall.
Beispielsweise, wenn man eingeloggt ist und sein Benutzername immer oben
im Head-Bereich angezeigt wird. Dafür möchte ich jetzt nicht anfangen und
jedem Controller diese Information injizieren müssen.
Gibt es globale Controller oder ähnliches, die Fluid Variablen global "definieren" können?
Oder eine recht einfache Alternative?
Danke, Pete
Hi Pete,
ich würde einfach eine AbstractController Klasse definieren, die den normalen ActionController erbt und jeweils deine globalen Variablen definieren.
Jeder Controller sollte dann vom AbstractController erben, somit muss du die nur 1x definieren.
LG
An sich eine gute Idee. Leider weiß ich dann immer noch nicht so richtig, wie ich in der abstrakten Klasse diese Variable definieren soll. Die indexAction() wird in jedem Child-Controller meist eh überschrieben und __construct() würde den von Haus aus gelieferten abstrakten Controller auseinander brechen.
Ich könnte das im normalen \TYPO3\FLOW3\Mvc\Controller\AbstractController definieren, ist aber rein Daten technisch aber sicher nicht ganz sauber programmiert.
Hat noch jemand eine Idee?
Gruß, Pete
Du kannst eine initializeAction() und eine initializeView erstellen.
Die initializeAction() wird vor jeder Action aufgerufen, die initializeView() wird vor jeder View aufgerufen.
Also wenn du nur Fluid Variablen vordefinieren willst, kannst du es in der initializeView() machen und dann jeweils assignen.
Yip, jetzt hab ich es gerafft. Also noch mal Dankeschön und hier für alle, wie es geht:
Man nehme sich seinen neuen Controller her (sollte ActionController sein) und überschreibe die Funktion initializeView().
In dieser Funktion kann man dann bspw. eine Variable definieren, die man in JEDER View, die der Controller anspricht, dann zur Verfügung gestellt bekommt.