[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