[TYPO3-german] Extbase - Flexform - / Typoscript-Settings
JCL - Johannes C. Laxander
jc at laxander.com
Wed Oct 22 20:21:59 CEST 2014
Hallo Bernd,
deine Vermutung war korrekt, die "flexform"-Settings waren eine Stufe tiefer: settings.flexform.setting1, und im TypoScript: settings.setting2.
Danke - wieder was gelernt ;-)
Gruß, Johannes.
> -----Ursprüngliche Nachricht-----
> Von: typo3-german-bounces at lists.typo3.org
> [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von
> bernd wilke
> Gesendet: Mittwoch, 22. Oktober 2014 17:05
> An: typo3-german at lists.typo3.org
> Betreff: Re: [TYPO3-german] Extbase - Flexform - / Typoscript-Settings
>
> Am 22.10.14 15:35, schrieb JCL - Johannes C. Laxander:
> >> ich würde mal spontan darauf tippen, das das
> $settings-Array so nicht
> >> ausgelesen werden kann.
> >> Hast Du mal versucht, ob ein einzelner Wert aus $settings erkannt
> >> wird, also z.B. $settings['settingX']?
> >
> >
> > So, ich habe getestet. Meine Erkenntnisse sind jetzt:
> >
> > Wenn ich einen einzelnen Wert übergebe, hier ein Setting aus
> > TypoScript,
> >
> > $cruises =
> >
> $this->cruiseRepository->findBySelectedCriteria($this->settings['cruis
> > e']['select']['bookingStatus']);
> >
> > tritt der Fehler nicht auf, genau so, wie wenn ich nur die
> Flexform-Settings so übergebe:
> >
> > $cruises =
> > $this->cruiseRepository->findBySelectedCriteria($this->settings);
> >
> > Erst wenn ich Flexform-Settings und TypoScript-Setting
> mische, fliegt mir "foreach($item as $key => $value)" um die
> Ohren. Anscheinend werden die TypoScript-Settings anders
> dargestellt / übergeben. Wer kann dazu was sagen??? Hier noch
> einmal mein Problem in der Gesamtheit:
> >
> > Ich übergebe mit der Repository-Methode im Controller
> Flexform-Settings:
> >
> > class CruiseController extends
> \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
> > ...
> > public function listAction() {
> > $cruises =
> $this->cruiseRepository->findBySelectedCriteria($this->settings);
> > ...
> > }
> > }
> >
> > class CruiseRepository extends
> \TYPO3\CMS\Extbase\Persistence\Repository {
> > public function findBySelectedCriteria($settings) {
> > ...
> > foreach ($settings as $item) { <----- Zeile 66
> > foreach($item as $key => $value) {
> > ...
> > }
> > }
> > }
> > }
> >
> > Das funktioniert. Nun habe ich zusätzlich noch TypoScript-Settings:
> >
> > plugin.tx_sccruiseplan {
> > settings {
> > settingX = abc
> > }
> > }
> >
> > Nach dieser Definition im Extension-Setup funktioniert aber
> die Repository-Methode nicht mehr. Ich bekomme jetzt den Fehler:
> >
> > #1: PHP Warning: Invalid argument supplied for foreach() in
> > /.../Classes/Domain/Repository/CruiseRepository.php line 66
> >
> > Welche Erklärung gibt es dafür und wie behebe ich dieses Problem?
>
> ich würde vermuten, dass deine Settings unterschiedlich tief
> geschachtelt sind und daher auf einer Ebene kein Array wie
> erwartet vorhanden ist.
> mach doch mal einen var_dump von $settings für die
> verschiedenen Konfigurationen (flexform/TS/flexform+TS)
>
> bernd
> --
> http://www.pi-phi.de/cheatsheet.html
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
More information about the TYPO3-german
mailing list