[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