Re: [TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)

2015-01-22 Diskussionsfäden Hagen Gebauer

Hallo Bernd,

nein, das kannte ich nicht. Vielen Dank also für den Hinweis!

LG: Hagen.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)

2015-01-22 Diskussionsfäden bernd wilke

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

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:

{_all}

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

Re: [TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)

2015-01-22 Diskussionsfäden 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

die Variablen {group.firstName} und {group.lastName} aus.

Schöne Grüße,
Hagen.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)

2015-01-21 Diskussionsfäden JCL - Johannes C. Laxander
 
Hallo Hagen,

wenn ich dich richtig verstanden habe, dann möchtest du im Frontend den im 
Plugin gewählten Eintrag ausgeben.

Plugin-Einstellungen sind in der Repository-Klasse in der Array-Variablen 
$settings verfügbar, also so verarbeiten und testen:

foreach ($settings as $item) {
/**
* Jede Plugin-Einstellung ist ein assoziatives Array; 
* der Index (Key) referenziert dabei auf ein Flexform-Feld 
(settings.flexform.).
**/
foreach($item as $key => $value) {
/** Only for testing **/
echo "".$key.": ".$value."";
}
...
}

Und in deinem Fluid-Template für das Frontend musst du dann eingentlich nur 
noch mit
{object.eigenschaft} darauf zugreifen, also z.B. {trackSelection.name}. 

Johannes.



> -Ursprüngliche Nachricht-
> Von: typo3-german-boun...@lists.typo3.org 
> [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von 
> Hagen Gebauer
> Gesendet: Mittwoch, 21. Januar 2015 13:31
> An: typo3-german@lists.typo3.org
> Betreff: [TYPO3-german] Extbase/Fluid-Extension: FlexForm 
> settings werden nicht gelesen (T3 6.2.4)
> 
> Hi!
> 
> ich habe für ein Plugin meiner Extension ein einfaches 
> FlexForm mit einer Select-Liste angelegt. Diese ist in der 
> XML-Datei umschlossen mit 
> 
> 
> Im Backend funktioniert alles wunderbar, das Formular ist 
> aufrufbar und wird auch korrekt gespeichert.
> 
> Im Frontend jedoch ist die Variable
> $this->settings['flexform']['trackSelection'] im Repository 
> offensichtlich leer und {flexform.trackSelection} im 
> Fluid-Template definitiv leer.
> 
> Der Aufruf in der Repository-Methode ist 
> $query->like('primary_track', 
> $this->settings['flexform']['trackSelection'])
> 
> Mit statischer Angabe der trackSelection-Variable in der Form 
> $query->like('primary_track', 4) funktioniert die Ausgabe des 
> Plugins einwandfrei.
> 
> Mein TYPO3 ist Version 6.2.4
> 
> Übersehe ich irgendetwas? Ein Debugging ist mir nicht 
> gelungen, weil ich leider keine Ahnung habe, in welcher Form 
> ich einen einfachen String an das Fluid-Template übergeben muss.
> 
> Eine weitere Frage in dem Zusammenhang: wo sind die 
> gespeicherten FlexForm-Variablen eigentlich hinterlegt? Wenn 
> ich das Feld tt_content.pi_flexform leere, wird im 
> Backend-Formular noch immer die korrekte Auswahl angezeigt.
> 
> Vielen Dank im Voraus!
> 
> LG: der Hagen.
> ___
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> 

___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

[TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)

2015-01-21 Diskussionsfäden Hagen Gebauer

Hi!

ich habe für ein Plugin meiner Extension ein einfaches FlexForm mit einer 
Select-Liste angelegt. Diese ist in der XML-Datei umschlossen mit



Im Backend funktioniert alles wunderbar, das Formular ist aufrufbar und wird 
auch korrekt gespeichert.

Im Frontend jedoch ist die Variable
$this->settings['flexform']['trackSelection'] im Repository offensichtlich leer 
und
{flexform.trackSelection} im Fluid-Template definitiv leer.

Der Aufruf in der Repository-Methode ist
$query->like('primary_track', $this->settings['flexform']['trackSelection'])

Mit statischer Angabe der trackSelection-Variable in der Form
$query->like('primary_track', 4)
funktioniert die Ausgabe des Plugins einwandfrei.

Mein TYPO3 ist Version 6.2.4

Übersehe ich irgendetwas? Ein Debugging ist mir nicht gelungen, weil ich leider 
keine Ahnung habe, in welcher Form ich einen einfachen String an das 
Fluid-Template übergeben muss.

Eine weitere Frage in dem Zusammenhang: wo sind die gespeicherten 
FlexForm-Variablen eigentlich hinterlegt? Wenn ich das Feld 
tt_content.pi_flexform leere, wird im Backend-Formular noch immer die korrekte 
Auswahl angezeigt.

Vielen Dank im Voraus!

LG: der Hagen.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german