Benutzersuche anpassen

Sie können die Eingabfelder für Zusatzinformationen in der Benutzersuche anpassen. Dabei können Sie die bestehenden Standard Eingabefelder erweitern oder komplett ersetzen. Legen Sie dafür eine der folgenden Dateien an:

  • Ersetzen: var/lib/admin/t/user_search_fields_replace.tpl
  • Erweitern: var/lib/admin/t/user_search_fields_extend.tpl

Im Template können Sie das HTML selbst bestimmen. Empfohlen wird aber sich am folgenden HTML Beispiel zu orientieren:

<table width="100%"> <tr> <td width="50%"> {input type="text" name="foobar" title="Foobar" value=$smarty.request.extra.foobar medium=true labelWidth=$labelWidth no_auto=true} </td> <td width="50%">&nbsp;</td> </tr> </table>

Ihre eigenen Eingabefelder können Sie nun über eine Erweiterung im Standard Filter der Benutzersuche abfragen. Legen Sie dafür folgende Datei an:

  • var/lib/admin/user_search_fields.php

In dieser Datei muss es eine Funktion user_search_fields($user, $filter) geben, die jeweils einen Benutzer mit den angegebenen Filterdaten prüft. Das Ergebnis dieser Funktion muss true sein, wenn der Benutzer gefunden werden soll und false, wenn nicht. Beispiel:

function user_search_fields($user, $filter) { if ( $filter['foobar'] === '' // Der Filter für "foobar" ist nicht angegeben || stripos($user->extra['foobar'], $filter['foobar']) !== false // oder kommt im Benutzer Extrafeld "foobar" vor ) { return true; } return false; }
warning

Wenn Sie in der EGOCMS Version 22 oder höher für die Benutzersuche Elasticsearch einsetzen, dann müssen Sie in var/conf/conf.ini einen Block mit Ihren eigenen Eingabefeldern definieren. Diese Felder werden dann automatisch im Suchindex aufgenommen und bei der Benutzersuche berücksichtigt. Hierbei geben Sie für Texteingaben, bzw. Auswahllisten, als Typ string an und für Checkboxen boolean.

[user_search_fields] foobar="string" barfoo="boolean"
wb_incandescent

Das Anlegen der Datei var/lib/admin/user_search_fields.php ist dann nicht mehr notwendig. Sie können die Datei aber trotzdem anlegen, wenn Ihre Logik zur Erweiterung der Benutzersuche komplexer sein sollte. Dann aber werden Ihre Felder nicht direkt im Suchindex abgefragt, sondern stattdessen nachträglich zum Filtern der Benutzer verwendet.