Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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 ShopLive-Suche im ShopImage Removed

...

Live-Suche im Adminbereich
Image Removed

...

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.

...

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.Image Removed

...

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

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:

Codeblock
languagephp
theme
RDark
/**
 * @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.

...

Über den Vorschlägen: \brandbox\component\suggestion\lib\event\suggestionContentAboveEventInterface
Unter den Vorschlägen: \brandbox\component\suggestion\lib\event\suggestionContentBelowEventInterface

Beispiel:Image Removed

...

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  Diese werden dann mit einer leichten Einrückung unter deren eigentlichen "Eltern-Filter" angezeigt.

Image Removed

...