[TYPO3-german] count innerhalb einer fluid for each schleife

Ralf-Rene Schröder ralf.rene at online.de
Fri Oct 14 17:12:19 CEST 2016


nur zur Info für die "Nachwelt"...
da es mit Bordmitteln scheinbar nicht geht hilft einem die Extension
"vhs" wie so häufig weiter:
<f:for each="{beraters}" as="berater">
  <tr>
    <f:alias map="{buid: '{berater.uid}'}">
      <th>(ID:{buid}) {berater.name}</th>   <<< das geht !!!
      <f:for each="{v:variable.get(name: 'beraterdata.{buid}',
useRawKeys: 1)}" as="datenspalte">
        <td>{datenspalte} </td>
      </f:for>
    </f:alias>
  </tr>
</f:for>


Am 14.10.2016 um 14:43 schrieb Ralf-Rene Schröder:
> bin jetzt ein klein wenig weiter...
> da ich es nicht schaffe die ausgabe abhängig vom der übergeordneten
> Schleife (hier Berater) zu machen, habe ich ein eigenes Array mit Namen
> beraterdata erstellt:
> $beraters = $this->beraterRepository->findAll();
> foreach ($beraters as $berater) {
>   $buid = $berater->getUid();
>   $beraterdata[$buid]['1'] =
> $this->teilnehmerRepository->count4RowBerater($berater);
>   $beraterdata[$buid]['2'] =
> $this->teilnehmerRepository->count4RowBerater($berater,array('ROT',true));
>   $beraterdata[$buid]['3'] = ...
> ...
>   $this->view->assign('beraterdata', $beraterdata);
> }
> 
> das gibt ein sauberes Array beraterdata im Frontend aus...
> erste Ebene die Berater-ID ... zweite Ebene die Spalten in der Ausgabe
> nur wie komme ich jetzt in Fluid an die erste/zweite Ebene ran ???
> Meine Versuche:
> <f:for each="{beraters}" as="berater">
> <tr>
>  <f:alias map="{buid: '{berater.uid}'}">
>   <th>(ID:{buid}) {berater.name}</th>   <<< das geht !!!
>   <td>{beraterdata: '{{buid}: 1}'}</td>
>   <td>{beraterdata.{buid}.2}</td>
>   <td>{beraterdata.'{buid}'.3}</td>
>   <td>{beraterdata.80.4}</td>    <<< das geht !!!
>  </f:alias>
> </tr>
> </f:for>
> das der alias sauber durchläuft sehe ich in der th, denn dort wird die
> ID:{buid} sauber ausgegeben...
> nur in der Definition der Arrayausgabe wird es nicht ersetzt und es wird
> immer der komplette String mit Klammern ausgegeben (wie ist die Notation
> für solch eine verschachtelte Arryausgabe ???
> Ein {beraterdata.80.4} liefert die richtige Ausgabe für genau diesen
> Berater, nur wie klappt die Ersetzung der {buid} in dieser Situation ???
> 
> 
> Am 13.10.2016 um 14:31 schrieb Ralf-Rene Schröder:
>> Am 13.10.2016 um 13:52 schrieb Stefan Padberg:
>>> $beraterRot = $this->teilnehmerRepository->count4RowBerater($berater,ROT);
>>> $this->view->assign('beraterRot', $beraterRot);
>>>
>>> Funktioniert das? Kannst du darauf im Fluid problemlos zugreifen?
>> im prinzip ja, aber eben nicht in Relation zur Beraterzeile
>>
>> aus folgendem Controller (ohne ROT, nur der Hauptzähler):
>> $beraters = $this->beraterRepository->findAll();
>> foreach ($beraters as $berater) {
>>   $berater1 = $this->teilnehmerRepository->count4RowBerater($berater);
>>   $berater2 = $this->teilnehmerRepository->count4RowBerater('80');
>>   $this->view->assign('berater1', $berater1);
>>   $this->view->assign('berater2', $berater2);
>> }
>> $this->view->assign('beraters', $beraters);
>>
>> wird im DEBUG (reduziert)
>> Extbase Variable Dump
>>    berater1 => 0 (integer)
>>    berater2 => 10 (integer)
>>    beraters =>
>> TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (47 items)
>>
>>
>> PS: count4RowBerater('80') ist beispielhaft ein Berater der, wie man im
>> Ergebnis sieht, 10 Teilnehmer hat...
>> PPS: die Berater SIND übrigens eine erweitertes fe_users Model
>>
> 
> 


-- 
image[FORMAT] - Ralf-René Schröder
http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format


More information about the TYPO3-german mailing list