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