Hallo zusammen,

ich habe eine einfache Erweiterung geschrieben, um eine DB-Tabelle (hier jetzt mal beispielhaft tl_extension) im Backend verwaltbar zu machen.

Die Tabelle tl_extension enthält Daten aus einem Formular, in das ein registriertes Mitglied eintragen kann. Entsprechend wird in der Tabelle tl_extension das Mitglied aus der tl_member mit seiner ID als member_id referenziert.

In der DCA-Datei habe ich via "label_callback" den Vor- und Nachnamen sowie die E-Mail Adresse in die Backend-Tabellenansicht eingefügt.
PHP-Code:
public function addLabelData($row$labelDataContainer $dc$args
{
    
$fieldName 'member_id';
    
$fields $GLOBALS['TL_DCA'][$dc->table]['list']['label']['fields'];
    
$key array_search($fieldName$fieldstrue);
    
$oldVar $args[$key];

    
// Labelfeld für Mitgliedsnamen
    
$objMember $this->Database->prepare("SELECT * FROM tl_member WHERE id = ?")->execute($oldVar);
    
$args[$key] = $objMember->firstname.' '.$objMember->lastname;

    
// Labelfeld für Mitgliedsmail
    
$fieldName 'email';
    
$fields $GLOBALS['TL_DCA'][$dc->table]['list']['label']['fields'];
    
$key array_search($fieldName$fieldstrue);
    
$args[$key] = $objMember->email;

    return 
$args;

Das funktioniert wunderbar.

Nun zu meiner eigentlichen Frage:
Ich möchte über die Suche z.B. nach der E-Mail Adresse des Mitglieds suchen und die zugehörigen Datensätze angezeigt bekommen. Über die DCA-Funktionen, die mir bekannt sind, könnte ich zwar easy nach der member_id suchen, da dies eine Spalte der DCA-Datei ist, aber ist es auch irgendwie möglich, eine Funktion/ein Callback für die Suche zu schreiben, um mein beschriebenes Problem zu lösen?

Der MySQL-Query dazu wäre ja recht einfach, aber wie baue ich das in die DCA-Datei ein?
Code:
SELECT * FROM `tl_extension` WHERE member_id = (SELECT id FROM tl_member WHERE email = 'test@test.com')
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt und irgendjemand hat eine Lösung parat <3

Vielen Dank vorab für eure Hilfe und ein schönes Wochenende!