Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 4 Nächste Version anzeigen »

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

FunktionRückgabeBeschreibung

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.

onCollectFilterbrandbox\styleguide\brandbox\entity\checkboxAufruf für die Rückgabe der Filterkonfiguration
onCollectResultbrandbox\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.

onPopulateSuggestionResultsvoid

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

EventsBeschreibungWeiter Informationen
\brandbox\shop\article\lib\event\suggestionEventVorschläge Shop →  Artikel.Artikelsuchvorschläge v5.5
\brandbox\shop\group\lib\event\suggestionEventVorschläge Shop →  Gruppen.Gruppensuchvorschläge v5.5
\brandbox\cms\page\lib\event\suggestionEventVorschläge CMS →  Seiten
\brandbox\base\widget\lib\event\suggestionEventVorschlä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.

  • Keine Stichwörter