Der driver/search wird dazu benutzt, eine Such-Maske zu bauen, die Eingabe-Felder enthält und die Anzeige der gefunden Objekte mittels des driver/result durchführt. Über cell/FUNCTION können Umschalter in die Suche eingebaut werden, um beispielsweise die Anzahl der Treffer, die Ansicht oder die Sortierung auswählbar zu machen.
No HTTP Header | Wenn gesetzt wird kein HTTP-Header und kein HTML-Header ausgegeben. Dies kann benutzt werden, um Daten direkt aus der easydb zu holen und als Nicht-HTML auszugeben. Benutzen Sie dies mit grid/FUNCTION-detail/header. Seit Version 4.0.xx. |
Page Class | Definiert für diese Seite eine Page Class. Diese wird verwendet, um die speziellen Stringtool-Variablen zu benutzen. Seit Version 4.0.326. |
Table | Haupt-Tabelle für das Suchen der Objekte. |
Order By Def | PHP-Array um die verfügbaren Sortierungen zu definieren. Das PHP-Array beinhaltet eine Liste von assoziativen Arrays. Je assoziativem Array in der Liste wird eine Sortier-Definition definiert. Das assoziative Array muss die folgenden Keys beinhalten:
Das assoziative Array kann die folgenden Keys beinhalten:
array( array('name' => 'Eingangsreihenfolge', 'order' => 'id DESC' ), array('name' => "Pool-Name", 'field' => "lk_pool_id", 'table' => "pool", 'order' => "pool.name" ), array('name' => "Künstler", 'order' => ' (SELECT name FROM kuenstler WHERE kuenstler.id=(SELECT lk_kuenstler_id FROM bilder__kuenstler WHERE lk_bild_id=bilder.id ORDER BY id LIMIT 1)) ASC') )Das Beispiel definiert 2 Einträge für das Sortierungs-Menü: Pool-Name sortiert nach dem Pool-Namen welcher über lk_pool_id verknüpft ist und Eingangsreihenfolge sortiert rückwärts nach id. Der Default, wenn diese Option nicht gesetzt ist, ist: array(array('name' => "ID DESC", 'order => "%%%keep%%%"))%%%keep%%% hat die besondere Bedeutung, dass die Eingabe-Reihenfolge erhalten bleibt, z.B. bei Listen, die über Arbeitsmappen in die Suche geladen werden. Für normale Suchen, hat %%%keep%%% die Bedeutung ID DESC, also die Eingangsreihenfolge rückwärts. Im Fall der easydb Connector-Suche wird aus dem order, bzw. table.name (für Link-Tabellen) eine Sortiername gebildet. Wenn dieser Sortiername auch in der entfernten easydb existiert, so kann das Suchergebnis mit allen Connector-Treffern sortiert werden. |
Default Result ID | grid/result-Mask-ID. Die Maske, die standardmäßig verwendet wird. Eine Umschaltung der Ansicht kann der Benutzer über das Pulldown cell/FUNCTION-search/view_select durchführen. Der goto-Link springt zu der angegeben Maske. |
Check Pool | GCELL-ID des cell/TABLELINK welcher die Tabelle benutzt in der in die Spalte searchmask der Name einer alternativen driver/search-Maske drinsteht. Beim Seitenaufbau der Suche wird überprüft, ob die Maske ggfs. gewechselt werden muss. In der anderen Maske muss dieser Parameter ebenfalls gesetzt sein. |
Autosearch | Wenn gesetzt, wird beim ersten Aufruf der Suche und bei einem force_search in der URL eine Suche durchgeführt. Diese sucht alle Objekte ohne Einschränkung (unter Berücksichtigung des Rechtemanagements) gefiltert nach dem Filter Where Clause. |
Filter Where Clause | Filter, der bei allen Suchen in dieser Maske angewendet wird. Ersetzt werden: %user_id% durch die ID des Users (nur easydb-Authentifizierung), %user_login% durch das LOGIN des Users, %group_ids% durch eine kommaseparierte Liste der Gruppen-IDs des Users. Vor Version 4.0.177 wurde der Filter nur bei Autosearch angewendet. Um dieses Verhalten weiterhin zu benutzen, kann im Filter die Variable %autosearch% verwendet werden, die bei Autosearch TRUE, sonst FALSE beinhaltet. |
Limit Hits | Anzahl der maximal gefundenen Treffer. Dieses Such-Limit überschreibt die Config-Variable SEARCH_MAX_HITS. |
Set eadb_frame | easydb verlässt sich für den Editor und die Detail-Ansicht auf die Angabe eines Frame-Namens, um nach dem Speichern z.B. die Suche neu laden zu können oder im Detail die Nummer des aktuellen Treffers anzugeben. Dieser Frame-Name ist normalerweise gleich dem FRAME-name des DOM. Wenn die easydb ohne FRAMES gebaut wird, dann können Sie mit diesem Paramater den Namen des Frames manuell setzen. |
Filter linked objects from editor | Mit diesem Paramater können Objekte, die aktuell in einem Editor aufgerufen werden (in einem anderen FRAME) als Suchfilter für die aktuelle Suche genutzt werden. Der Filter prüft, ob es ein 1-n-Link-Feld in der Haupt-Tabelle der Suche gibt, welches auf die Haupt-Tabelle des Editors zeigt. Es werden alle Objekte in der Suche angezeigt, die über dieses Feld zu dem Objekt im Editor verlinkt sind. Der Parameter ist der Name des Frames in dem sich der Editor befindet. |
SQL Prefetch EAS Ids | Select, um EAS-IDs vorzuselektieren. Dadurch wird das Abfragen und Anzeigen der Assets beschleunigt. *%IDS% wird durch die aktuell gefunden IDs je Seite ersetzt. *Seit Version 4.0.229.2. |
Debug SQL | Wenn gesetzt werden die meisten SQL-Abfragen, die diese Suche durchführen, zu Debug-Zwecken im Frontend angezeigt. Änderungen an diesem Parameter werden im Frontend nur wirksam, wenn sich der Benutzer neu anmeldet. |
Der search driver erlaubt es, sich per PHP den automatisch von easydb zusammengebauten SELECT zu verändern. Dazu kann an beliebiger Stelle die Funktion search_register_sql_callback benutzt werden.
search_register_sql_callback(<functionname>, <parameter>);
// <functionname>: Name der Funktion // <parameter>: Parameter der übergeben wird
Diese Funktion wird dann automatisch aufgerufen, nachdem easydb den SELECT zusammengebaut hat. Als erster Parameter wird $cid übergeben, als zweiter der registrierte <parameter>.
Folgende Variablen können Sie dann im PHP verändern:
$_SESSION[$cid]["sql"]; // das SQL welches ausgeführt wird, Achtung: ein Leerzeichen am Anfang
$_SESSION[$cid]["orderby"]; // das ORDER BY welches ausgeführt wird.
Beispielsweise kann eine Funktion ein Suchergebnis rekursiv erweitern:
function my_expand_select($cid, $parm) { // gibt "15" aus ( nur zum Test ) echo $parms;
// holen der sql clause $sql = $_SESSION[$cid]["sql"];
$sql = " FROM item WHERE id IN ( WITH selected_items AS ( SELECT item.id ". $sql . " ) SELECT id FROM selected_items UNION SELECT lk_item_to FROM item__item WHERE lk_item_from IN (SELECT id FROM selected_items) UNION SELECT lk_item_from FROM item__item WHERE lk_item_to IN (SELECT id FROM selected_items) )";
// zurückschreiben $_SESSION[$cid]["sql"] = $sql; }
// registrieren des Callbacks search_register_sql_callback("my_expand_select", 15);
Benutzen Sie Debug SQL, um Ihr SQL zu debuggen.
p.
Ein Such-Formular muss do_search, print_result, search_open_form und close_form benutzen!
Diese FUNCTION führt die eigentlich Suche aus. Sie gibt selbst kein HTML aus. do_search sollte vor search_open_form aufgerufen werden.
debug | Wenn gesetzt, wird der aktuelle SQL-Select für die Suche zu Debug-Zwecken ausgegeben. |
Definiert eine Gruppe von Suchfeldern, die dann mit einem searchdef_modifier verknüpft werden können.
gcell_ids | Kommasepariert Cell-IDs der Suchfelder die verknüpft werden sollen, die Reihenfolge bestimmt auch die Reihenfolge der logischen Verknüpfungen. |
Achten Sie darauf, die Cell-IDs ohne Leerzeichen einzugeben!
Gibt ein Pulldown mit AND, NOT und OR (optional) aus, um Suchfelder in einer Gruppe zu verknüpfen.
gcell_id | GCELL-ID des Suchfeldes welches logisch in einer Gruppe zusammengefasst mit anderen Suchfeldern verknüpft werden soll. |
default | AND, OR oder NOT kann als Voreinstellung festgelegt werden. |
"tags" | Beliebiger String, der in die SELECT-Node-Deklaration kopiert wird. |
omitOr | Wenn gesetzt, wird kein OR ausgegeben. |
namePrefix | Für die einzelnen Optionen des Pulldown werden Stringtool Variablen SEARCH_MOD_[AND|NOT|OR] benutzt. Mit namePrefix kann an den Variablen-Namen noch ein String angehängt werden. |
Diese Funktion ist seit Version 4.0.159 obsolet.
Gibt einen Error- oder Hinweis-Text aus der durch den Search-Driver intern gesetzt wurde.
Seit Version 4.0.159 gibt diese Funktion nichts mehr aus. Der Text wird jetzt automatisch bei close_form ausgegeben.
Diese FUNCTION öffnet das FORM (mit Methode GET) und gibt einiges an Verwaltungs-HTML aus.
Benutzen Sie ab sofort search_open_form. open_form funktioniert weiterhin wird aber nicht mehr empfohlen.
Diese FUNCTION öffnet das FORM und gibt einiges an Verwaltungs-HTML aus. do_search sollte vor search_open_form aufgerufen werden.
use_post | Wenn gesetzt, wird die POST-Methode zum Formular senden verwendet. Verwenden Sie POST bei großen Formularen. Nachteil ist, dass der Browser eine Warnmeldung ausgibt, wenn ein Benutzer per Back-Button auf die Suche navigiert. |
Schließt das FORM.
Seit Version 4.0.159 wird ggfs. ein Error- oder Hinweis-Text ausgegeben (in einer DIV mit der class="search_message").
Um die Ansicht zu wechseln gibt diese FUNCTION ein Pulldown mit verschiedenen Result-Mask aus.
"views" | Kommaseparierte Liste mit Result-Mask-Namen. Sie können im Stringtool die Variable view_select_<view> setzen, um einen eigenen übersetzbaren Frontend-Namen zu vergeben. Hinweis: Die ältere Array-Notation für die Views funktioniert noch, ist aber obsolete. |
Gibt die ID der aktuellen Result-Mask aus. ( Seit Version 4.0.168 )
Gibt den Namen der aktuellen Auswahl der Order-By-Pulldowns aus.
field | Optionale Angabe eines Feldes zum Zugriff auf das Mask-Property Order By Def der Suche. Standardmäßig wird sort verwendet. Seit Version 4.0.287. |
Gibt eine Checkbox aus, die das Verhalten eines SINGELINKS so umstellt, dass die Suche einmal mit Kindern und einmal ohne Kinder sucht.
gcell | GCELL-iD des SINGLELINK-Suchfeldes. |
"tags" | Beliebiger String, der in die INPUT-Node-Deklaration kopiert wird. |
Gibt eine Checkbox aus, die das Verhalten der von normalen TEXT oder SINGLELINK-Searchdef-Suchen so verändert, das einmal die Kinder von gefundenen Treffern mit in die Suche einbezogen werden und einmal nicht.
Beispielsweise kann eine Suche in einer verlinkten Tabelle nach Europa zu genau einem Treffer führen. Wenn diese Checkbox gesetzt ist, werden alle Kinder und Kindeskinder von Europa mit in die Suche einbezogen. Im SINGLELINK-Fall werden alle Kinder und Kindeskinder einbezogen die mit keinem oder dem selben Ort bzw. den selben Orten verlinkt sind.
Die SINGLELINK-Variante funktioniert nur mit PostgreSQL-Datenbanken, nicht mit include_fathers und nur für die n-m- und normalen 1-n- Varianten. Diese Variante gibt es seit Version 4.0.241.
gcell | GCELL-iD des TEXT- oder SINGLELINK-Suchfeldes. |
include_fathers | Neben allen Kindern werden hiermit auch alle Väter des Objektes in die Suche einbezogen (nur für TEXT-Suchen). |
default_checked | Wenn gesetzt, ist die Checkbox standardmäßig gesetzt. |
tags | Beliebiger String, der in die INPUT-Node-Deklaration kopiert wird. |
Gibt das Pulldown aus, um die Sortierung zu wählen. Die Sortierungen werden in den Mask-Properties festgelegt.
"tags" | Beliebiger String, der in die SELECT-Node-Deklaration kopiert wird. |
Gibt das Pulldown aus, um die Anzahl der Treffer pro Seite zu wählen. Die möglichen Werte werden in den Mask-Properties festgelegt.
"tags" | Beliebiger String, der in die SELECT-Node-Deklaration kopiert wird. |
Gibt Links mit Seitenzahlen für die Seiten-Navigation aus.
selectChunkClass | DOM class für die aktuell selektierte Seite. |
unselectedChunkClass | DOM class für die nicht-selektierten Seiten. |
short | Wenn gesetzt, wird eine kurze Version der Navigation ausgegeben. |
short_range | Anzahl der Seiten die links und rechts von der aktuellen Seiten angezeigt werden (bei aktivierter "short" Option). |
Gibt die Vor-/Zurück-Knöpfe für die Seiten-Navigation aus.
show_first_last | Wenn aktiviert, werden die "Zur ersten Seite"- und "Zur letzten Seite"-Knöpfe angezeigt. |
Gibt eine Checkbox aus mit der, wenn gesetzt, innnerhalb des aktuellen Treffer gesucht werden kann.
"tags" | Beliebiger String, der in die SELECT-Node-Deklaration kopiert wird. |
Gibt das aktuelle Such-Ergebnis über Result-Mask aus. Die Standard-Result-Mask wird in den Mask-Properties festgelegt.
mode | print only | Gibt das aktuelle Such-Ergebnis aus. |
print & message | Gibt das aktuelle Such-Ergebnis aus. Wenn die Suche keine Objekte gefunden hat, wird ein Text in einer <div class="search-no-hits"><div class="text">...</div></div> ausgegeben. Der Text kann easydb-weit in den String-Tool-Variablen l10n.search.error.noHits für normale Suchen resp. l10n.search.error.noHitsWithin für "Suchen innerhalb" angepasst werden. Innerhalb von grid/IFTHEN, wird kein Text ausgegeben. | |
print & message & welcome-div | Wie der vorherige Mode mit dem Unterschied, dass beim ersten Aufruf seit Anmeldung des Benutzers, eine sogenannte Welcome-Div ausgegeben wird. Dabei handelt es sich um die im easydb-Docroot befindliche Datei welcome.html. Der Pfad zu dieser Datei kann per Config-Variable WELCOME_DIV bzw. WELCOME_DIV_GUEST (für unangemeldete Benutzer) überschrieben werden. Diese Datei wird an der Stelle von print_result eingefügt. | |
output_escaping | - default – | Keine Änderung des Escapings. |
csv | Überschreibt das Escaping in allen OUTPUT-cell. |
Die Option mode gibt es seit Version 4.0.168.Die Option output_escaping gibt es seit Version 4.0.326.
Sie können lokale Dokumente auf dem easydb Web-Server in das Verzeichnis local legen. Die WELCOME_DIV wird als PHP geladen, nutzen Sie die Funktion current_language_code(), um die aktuelle System-Sprache auszulesen.
Gibt aktuelle Werte zum Suchergebnis aus.
type | total_count | Gesamt-Zahl der Objekte die sich in der Tabelle der Suche befinden. |
hit_from | Die erste Treffer-Nummer auf der aktuellen Seite. | |
hit_to | Die letzte Treffer-Nummer auf der aktuellen Seite. | |
hit_total | Die aktuelle Gesamt-Zahl der Treffer. |
Gespeicherte Suchen sind noch nicht in die easydb 4 portiert.
Gespeicherte Suchen sind noch nicht in die easydb 4 portiert.
Gibt die aktuell gefundene Anzahl von Treffern aus.
Gibt den aktuellen Text aus, der für eine search_within gesetzt wurde. Die Stringtool Variable dafür ist l10n.search.SearchWithinNHits.
Es kommt vor, dass within_title aus $_REQUEST[title] gesetzt wird, also z.B. aus der Sidebar von einer Arbeitsmappe oder Präsentation gesetzt wird.
Gibt den aktuellen Select aus der zuletzt von dieser Search-Mask gesucht wurde.
Gibt 1 aus, wenn die Suche zum ersten Mal aufgerufen wird und noch nichts gesucht wurde.
Rendert die inneren Cols und Rows und setzt damit einen HTTP-Header. Es wird die PHP-Funktion header verwendet.
Diese FUNCTION kann mehrfach verwendet werden. Diese Funktion macht nur Sinn in Verbindung mit search/no_http_header.
Seit Version 4.0.xx
Gibt den LINK aus, um in der Navigation zur ersten Seite in der Trefferliste zu springen.
Gibt den LINK aus, um in der Navigation zur vorherigen Seite in der Trefferliste zu springen.
Gibt den LINK aus, um in der Navigation zur nächsten Seite in der Trefferliste zu springen.
Gibt den LINK aus, um in der Navigation zur letzten Seite in der Trefferliste zu springen.
Gibt den LINK aus, um das Such-Formular zu resetten.
Seit Version 4.0.199
Erzeugt einen LINK der eine Email versendet.
Email-Mask die zum Rendern der Email benutzt wird. Die Email muss dieselbe Tabelle benutzen, wie die Suche. Die Email-Maske wird mit der ID des ersten gefundenen Objektes in der Suche aufgerufen. Benutzen sie cell/FUNCTION-email/render_search_result , um alle Objekte des aktuellen Suchergebnisses zu erhalten. |