Am 22.01.15 um 09:37 schrieb Hagen Gebauer:
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.


hm. du kennst aber schon den Viewhelper f:debug?
und {_all} definiert ein Array mit allen definierten Variablen:

<f:debug title="alle definierten Variablen">{_all}</f:debug>

da müßte dein flexform dann auch drin sein (sofern du nicht in einer Section mit nur lokalen Variablen bist).

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an