An dieser Stelle möchte ich meine Erfahrung mit TYPO3 Extbase / Fluid weiter geben. Ich gehe nicht näher auf den FLOW3 Backport ein, da er an diversen anderen Stellen ausreichend beschrieben ist.
Dort finden sich u.a. Code Snippets, Tutorials, Video Tutorials, Buchempfehlungen, Änderungen und Neuheiten.
Ich bin an dieser Stelle auch an einem Gedankenaustausch interessiert.
Tagebuch
Einfach und doch immer wieder vergessen.
Es ist eine Action erstellt und auch eine passende View existiert dazu. Bei der Anzeige im Frontend erscheint zunächst auch alles wie gewünscht, aber nach dem senden
des Formulars landet man in einer völlig anderen Ansicht (View). oO
Es sollte sich eigentlich eingebrannt haben, aber dennoch fällt man immer wieder darauf herein.
Beim Erstellen der Action auch immer daran denken diese in die ext_localconf.php einzutragen ;)
Die nächste Überraschung kommt dann mit folgender Meldung
#1186669086: An action "fooBarAction" does not exist in controller "Tx_Ext_Controller_FooController".
Beim Erstellen der Action natürlich dran denken diese entsprechend zu benennen und nicht das Suffix "Action" vergessen ;)
View ohne Action
Möglicherweise gibt es hierzu im Kontext des Frameworks eine Standardvariante,
oder es ist schlechtes Programmdesign, oder es ist tatsächlich der übliche Weg (vermutlich lässt sich das aber auch über Fluid abbilden, bzw. steuern).
Ich hatte gleich mehrfach die Anforderung innerhalb einer Prüfung je nach Ausgang eine
andere View aufzurufen ( if then else). Üblich ist, dass die View der Action in der man sich befindet aufgerufen wird.
Eine Variante ist, eine passende Action, bzw. nur den Rumpf anzulegen.
Eine anderer ist, das "ActionName" Feld vom ControllerContext zu überschreiben.
$controllerContext = $this->buildControllerContext();
$controllerContext->getRequest()->setControllerActionName('fooBar');
$this->view->setControllerContext($controllerContext);
Die View, bzw. HTML Datei muss natürlich vorhanden sein, aber es bedarf keiner weiteren Action.
Damit ist es zu mindestens möglich innerhalb einer Action (nach einer Entscheidung) auf unterschiedliche Views zu verweisen
fe_user Objekt
Extbase beinhaltet eine Schnittstelle zur Tabelle fe_user.
Um unabhängig einen Benutzer per Benutzer ID zu ermittlen bedarf es allerdings einer TypoScript Konfiguration,
sofern die Benutzer nicht im gleichen Kontext verwaltet werden.
Ein, vorausgesetzt $frontendUserUid ist ein gültiger Wert,
/**
*
* @var Tx_Extbase_Domain_Repository_FrontendUserRepository $frontendUserRepository
*/
protected frontendUserRepository;
$this->frontendUserRepository->findByUid($frontendUserUid);
führt zu keinem Ergebnis.
Das gleiche gilt für ein
$this->frontendUserRepository->findAll;
Erst nach folgender TypoScript Definition funktionierte ein unabhängiger Zugriff auf die Tabelle.
config.tx_extbase.persistence.classes {
Tx_Extbase_Domain_Model_FrontendUser {
mapping.recordType >
}
}


