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 Shop
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

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

Funktion

Rückgabe

Beschreibung

isResponsible

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 onCollectResult abgearbeitet haben. Dieses Event ist dazu gedacht, nachträglich Änderungen an den Vorschlägen vorzunehmen. Dabei stehen dann alle brandbox\component\suggestion\lib\event\suggestionResult zur Verfügung.

Innerhalb der suggestionResults sollte $searchResult vom Interface brandbox\component\suggestion\lib\event\suggestionSearchResultInterface gesetzt sein. Man könnte diese suggestionResults typisieren indem man in seinem Event ein eigenes $searchResult setzt das von dem Interface ableitet und man einen instanceof check einbaut.

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

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.