Hallo miteinander,
folgendes Problem habe ich, ich scheitere daran, eine kleine Logikknobelei für eine Adressdatenbank in SQL oder TypoScript umzusetzen:
Ich habe eine Adressliste mit einem etwas komplizierten Gruppensystem. Es gibt drei Übergruppen (Einrichtung, Bereich, Funktion) die dann dementsprechende Untergruppen besitzen, z.B.
{
Einrichtung: {
Santa Maria Spital,
Herz-Jesu-Stift,
häusliche Pflege
},
Bereich: {
Altenpflege,
Krankenpflege,
Jugendarbeit
},
Funktion: {
Abteilungsleitung,
EDV,
Stationsleitung
}
}
Eine mögliche Belegung wäre also: Herr Müller { Santa Maria Spital, Krankenpflege, Stationsleitung }.
Ich lass mir das ganze mit wfqbe als Tabelle darstellen. Es soll im Feld Bereich auch nur der Bereich (also bei Herr Müller Krankenpflege) angezeigt werden. Eine SQL-Abfrage auf das Feld fe_user.usergroup liefert aber natürlich das ganze Tripel zurück.
Meine erste Idee war, per SQL-Query die Gruppenbelegung des Adressdatensatzes mit der Untergruppenbelegung der jeweiligen Übergruppe abzugleichen und nur den Durchschnitt zurückgeben zu lassen, leider gibt es anscheinend keine Funktion zwei Listen miteinander zu vergleichen (oder ich habe sie nicht gefunden) und alle Workarounds erfordern viele JOINS und erscheinen wenig performant.
Nächste Idee, per TypoScript: Die SQL-ABfrage auf das Gruppen-Feld liefert ja eine kommaseparierte Liste mit den uids der Gruppen zurück, die wollte ich per split-Funktion zerlegen und mit dem jeweiligen fe_groups.title-Eintrag überschreiben. Wie lässt sich der von split zurückgegebene Wert überschreiben? Die TSRef verrät mir nur Möglichkeiten zum wrappen, aber ich tappe etwas im Dunkeln von welchem Datentyp split selbst ist.