[TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)
Hagen Gebauer
gebauer at mpi-cbg.de
Thu Jan 22 09:37:23 CET 2015
Hallo Johannes,
vielen Dank für Deine Antwort. Genau genommen will ich nicht den im FlexForm gewählten Eintrag ausgeben, sondern eine Liste von DB-Einträgen, die mit diesem Eintrag übereinstimmen. Der Ausgabe im Fluid-Template war letztlich nur ein Test, ob die Variable überhaupt ankommt.
Wie dem auch sei: ich habe folgendes herausgefunden:
• das Array $this->settings ist nur im Controller, nicht aber in der Repository verfügbar (ich war eigentlich überzeugt, das auch schon getestet zu haben)
• im Fluid-Template ist {flexform.trackSelection} ebenfalls nicht verfügbar
So funktioniert es jetzt:
Controller-Methode:
public function listByTrackAction() {
$groups = $this->groupsRepository->listByTrack($this->settings['flexform']['trackSelection']);
$this->view->assign('groups', $groups);
}
Repository-Methode:
public function listByTrack($primaryTrack) {
$query = $this->createQuery();
$query = $query->matching(
$query->like('primary_track', $primaryTrack)
);
return $query->execute();
}
Zudem habe ich einen Weg gefunden, mir jedweden String im Fluid-Template auszugeben und damit eine Debugging-Methode geschaffen. Für den Fall, dass es jemand anderen interessiert, führe ich es am Beispiel des Arrays $this->settings['flexform'] mal aus:
(im Controller listByTrackAction())
$nr = 0;
foreach($this->settings['flexform'] AS $key => $val) {
$groups[$nr]['firstName'] = $key;
$groups[$nr]['lastName'] = $val;
$nr++;
}
Entscheidend ist die Zuordnung der Werte zum Array $groups[x], das ja im Controller dem View zugeordnet wird (siehe oben)
Im Template gebe ich in einer Schleife
<f:for each="{groups}" as="group">
die Variablen {group.firstName} und {group.lastName} aus.
Schöne Grüße,
Hagen.
More information about the TYPO3-german
mailing list