Vorschläge
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 |
---|---|---|
|
| 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. |
|
| Aufruf für die Rückgabe der Filterkonfiguration |
|
| 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. |
|
| 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 |
---|---|---|
| Vorschläge Shop → Artikel | |
| Vorschläge Shop → Gruppen | |
| Vorschläge CMS → Seiten | |
| 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.