Dieses Plugin sammelt für einen Suchbegriff über mehrere Plugins Ergebnisvorschläge. In Kombination mit einer Suche kann hieraus eine Live-Search gebaut werden.
Live-Suche im Shop
Live-Suche im Adminbereich
Aufbau des Plugins
Dieses Plugin basiert auf dem Event-Handling von brandbox und hat nur die Aufgabe Suchergenisvorschläge über mehre Plugins hinweg zu sammeln.
Konfiguration
Das Plugin selbst besitzt keine eigene Konfigurationstabelle.
In der Tabelle Shop -> Theme-Konfiguration kann im Reiter Suche eingestellt werden
- ob die Filter in den Vorschlägen ausgeblendet werden können
- ob die Vorschläge im Allgemeinen dargestellt werden sollen
- wie lange gewartet werden soll zwischen Benutzereingabe und tatsächlicher Suche. Diese Einstellung kann sich negativ auf die Performance auswirken.
Die Darstellung kann sehr genau in der Layout-Konfiguration im Reiter $suggestion eingestellt werden.
Events - Vorschläge
Alle der Eventfunktionen werden mit dem Suchbegriff und der \brandbox\component\suggestion\lib\event\suggestionEventConfig
aufgerufen.
suggestionEventConfig |
---|
isAdmin: bool |
isShop: bool |
queryFilters : string[] |
queryFiltersAdditional : string[] |
synonyms :suggestion\lib\entity\suggestionSynonym[] |
Interface: \brandbox\component\suggestion\lib\event\suggestionEventInterface
Funktion | Rückgabe | Beschreibung |
---|---|---|
| boolean | Soll dieses Eventimplementation verwendet werden. Auswirkung: Filter und Ergebnisse werden dargestellt (true) oder nicht dargestellt (false). Anwendungsfall: sollte false sein, wenn Plugin nur Suchergebnisse für den Adminbereicht zurückliefert und das Event im Shopkontext ausgeführt wird. Hinweis: Es sollte hier in den meisten Fälle mindestens eine hasRight Abfrage gemacht werden. |
onCollectFilter | brandbox\styleguide\brandbox\entity\checkbox | Aufruf für die Rückgabe der Filterkonfiguration |
onCollectResult | brandbox\component\suggestion\lib\event\suggestionResult | Aufruf für die Rückgabe der Vorschläge. Hinweis: Hier können auch weitere Events ausgelöst werden. shop/article löst zum Beispiel noch mal Events aus um anderen Plugins die Möglichkeit zu geben, speziell die Artikelvorschläge anzupassen oder zu erweitern. |
onPopulateSuggestionResults | void | Dieses Event wird aufgerufen nachdem alle Events Innerhalb der suggestionResults sollte Beispiel: /** * @param suggestion\lib\event\suggestionResult[] $suggestionResults * @param suggestion\lib\event\suggestionEventConfig $eventConfig * @param string $query * * @return void */ public function onPopulateSuggestionResults(&$suggestionResults, $eventConfig, $query = '') { foreach($suggestionResults as &$suggestionResult): if($suggestionResult->searchResult instanceof article\lib\event\articleSuggestionSearchResult): $articleResultCount = $suggestionResult->searchResult->getResultCount(); $suggestionResult->suggestionGroup->label .= ' (Artikeltreffer: ' . $articleResultCount . ')'; endif; endforeach; } |
Eventverweise
Events | Beschreibung | Weiter Informationen |
---|---|---|
\brandbox\shop\article\lib\event\suggestionEvent | Vorschläge Shop → Artikel | .Artikelsuchvorschläge v5.5 |
\brandbox\shop\group\lib\event\suggestionEvent | Vorschläge Shop → Gruppen | .Gruppensuchvorschläge v5.5 |
\brandbox\cms\page\lib\event\suggestionEvent | Vorschläge CMS → Seiten | |
\brandbox\base\widget\lib\event\suggestionEvent | Vorschläge Admin → widget.json Einträge mit Verlinkung auf die Panel / Tabellenansicht in base/uiBase |
Events - Zusatzinhalt
Über und unter den Vorschlägen kann über die suggestionContent View-Events Zusatzinhalt in Form von HTML platziert werden.
Interfaces:
Über den Vorschlägen: \brandbox\component\suggestion\lib\event\suggestionContentAboveEventInterface
Unter den Vorschlägen: \brandbox\component\suggestion\lib\event\suggestionContentBelowEventInterface
Beispiel:
Unterfilter
Es gibt die Möglichkeit Unterfilter hinzuzufügen. Über \brandbox\component\suggestion\lib\event\suggestionEventConfig::$queryFiltersAdditional
können zusätzliche Filter angeboten werden. Diese werden dann mit einer leichten Einrückung unter deren eigentlichen "Eltern-Filter" angezeigt.