Hallo Ralf-Rene,

Ich möchte einmal versuchen, dein Problem mit meinen Worten zu beschreiben.

Du möchtest einem eingeloggten Berater eine Liste aller Teilnehmer ausgeben. Dabei sollen alle Teilnehmer, die der eingeloggte Berater betreut, verlinkt sein und die anderen nicht.

Die Beziehung zwischen Beratern und Teilnehmern wird in TYPO3 über eine mm-Tabelle organisiert.

Deine Idee:

Wenn du dies auf Front-End-Ebene lösen willst, dann müsstest du eigentlich mit zwei For-Schleifen arbeiten. Die erste Forschleife listet nacheinander alle Teilnehmer auf. Die zweiter Forschleife fragt für jeden Teilnehmer jeweils diese Berater ab und prüft, ob der eingeloggte Berater darunter ist. Dabei müsste dein Fluid-For ein Flag setzen, welches du dann auswertetest, um entweder den Link herzustellen oder um ihn nicht herzustellen. P.S. Ein {teilnehmer.berater} oder {teilnehmer.berater.uid}(späterer Post von dir) kann nicht funktionieren, da potentiell mehr Berater vorliegen können und die Angaben immer in einem Array/QueryObject gekapselt sind. Wenn, dann müsstest du wahrscheinlich {teilnehmer.berater.0.uid} nutzen.

Nachteil
- sequentielle Logik
- Verstoß gegen MVC-Prinzip, da Datenlogik berechnen musst und nicht aus den Daten ablesen kannst - Viele Datenbankabfragen, da für jeden Teilnehmer eine eigene Datenbankabfrage nötig ist


Vorschlag:

Generiere im schon im Controller eine Liste mit Teilnehmern, die von Frontend-User betreut werden und ordne beim Umschreiben in einen eigenen Array allen Einträgen das Flag 'needLink=true' zu. Generiere im Controller eine zweite Liste mit Teilnehmern, die von Frontend-User NICHT betreut werden und ordne beim Umschreiben in einen eigenen Array allen Einträgen das Flag 'needLink=false' zu. Merge den Array zu einem Gesamtarray und sortiere diesen, indem du die array-keys beim umschreiben geschickt gewählt hast.

Vorteil
- zwei Datenbankabfragen
- einfache Ausgabelogik mit einer Forschleife


Mit besten Grüßen

    Dieter


Am 30.07.2016 um 12:58 schrieb Ralf-Rene Schröder:

Hallo zusammen...

Ich scheitere gerade an einer vermutlich simplen if prüfung.
ich habe Berater (fe_user) und Teilnehmer
ein Teilnehmer ist einem oder mehreren Beratern zugewiesen
über {teilnehmer.berater} und mm-tabelle

ich möchte nun nur die Teilnehmer innerhalb einer for each schleife
ausgeben, aber nur die eigenen verlinken:
Anstelle des ==1 (das ist ein existierender Berater) brauche ich dann
später die UID des eingeloggten fe_users, aber noch nichtmal diese feste
Zuweisung der gerade eingeloggten UserUid liefert immer nur das else
Ergebnis...

<f:for each="{teilnehmers}" as="teilnehmer">
<f:if condition="{teilnehmer.berater} == 1">
   <f:then>
     <f:link.action action="show" arguments="{teilnehmer : teilnehmer}">
{teilnehmer.name} </f:link.action>
   </f:then>
   <f:else>
     {teilnehmer.name}
   </f:else>
</f:if>
</f:for>

PS: innerhalb der Einzelanzeige eines Teilnehmers kann ich übrigens die
zugeordneten Berater problemlos anzeigen mit:
<f:for each="{teilnehmer.berater}" as="tberater">
   <li>{tberater.firstName} {tberater.lastName}</li>
</f:for>
nur die Prüfung vorher klappt irgendwie nicht...



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

Antwort per Email an