<ws-suggest-result> ist ein Kindelement von <ws-suggest> und ermöglicht es, mehrere Ergebnistypen (z.B. Suchvorschläge, Produkte, Kategorien) getrennt voneinander zu konfigurieren und darzustellen. Sobald mindestens ein <ws-suggest-result> vorhanden ist, aktiviert sich automatisch der Orchestrator Mode in <ws-suggest>.
Komponente
Ergebnisse werden pro Typ gruppiert - für jeden Typ (z.B.product, category) wird eine eigene <ws-suggest-result>-Instanz als Kindelement von <ws-suggest> verwendet.
| Wert | Beschreibung |
|---|---|
source | Legt den Ergebnistyp fest, der von dieser Instanz dargestellt wird. Mögliche Werte: - query - Suchvorschläge- product - Produkt-Vorschläge- category - Kategorie-Vorschläge- content - Content-Vorschläge- show-all - “Alle Ergebnisse anzeigen”-Link |
use-ajax | Optional Aktiviert externes Rendering über die wsLoadAjax-Template-Funktion (wsResultDispatcher.subscribe("suggest", ...)).- Erfordert ws-search-template-helper ab Version 1.0.6.- Bei use-ajax="no" wird ein <template>-Element zum Rendern benötigt (siehe Beispiel oben). |
data-value | Pflichtfeld bei klickbaren Elementen Jedes klickbare Element innerhalb eines Templates muss das Attribut data-value besitzen, damit die Tastaturnavigation korrekt funktioniert. Bei source="show-all" kann der Wert leer sein: data-value="". |
show-all: Einfache Text-Ersetzung
Bei den anderensource-Typen (z.B. query, product) wird Mustache verwendet - ein Template-System, das Platzhalter wie {%result.value%} durch echte Werte aus der API-Antwort ersetzt und auch Logik wie Schleifen oder Bedingungen verarbeiten kann.
Für source="show-all" ist das nicht nötig, da hier nur ein einziger dynamischer Wert existiert: der aktuelle Suchbegriff. Daher wird stattdessen eine einfache Text-Ersetzung genutzt - {%query%} wird direkt durch den eingegebenen Suchbegriff ersetzt.
Wichtig: Der einzige funktionsfähige Platzhalter ist
{%query%}. Andere Mustache-Platzhalter wie {%result.value%} werden hier nicht ausgewertet und erscheinen unverändert im HTML.hide-with
Das Attributhide-with kann auf beliebigen Elementen gesetzt werden, um diese in Abhängigkeit von einem <ws-suggest-result> oder <ws-search-result> auszublenden - z.B. Tab-Buttons oder Überschriften, die nur sichtbar sein sollen, wenn der zugehörige Ergebnisbereich Inhalte hat.
Syntax: hide-with="ws-search-result-<source>" bzw. hide-with="ws-suggest-result-<source>"
hide-with ist aktuell nur für ws-suggest-result und ws-search-result verfügbar.total-container
Das Attributtotal-container (bzw. der gleichnamige CSS-Klassenname) ermöglicht die Anzeige von Suchergebnis-Metadaten im Frontend. Es gibt zwei Nutzungsarten:
| Modus | Beschreibung | Verfügbare Keys |
|---|---|---|
Mit source-Attribut | Wird von den Webcomponents gerendert. | - from - Startpunkt der aktuellen Seite (z.B. 1 bei Seitenanzahl 16)- to - Endpunkt der aktuellen Seite (z.B. 16 bei Seitenanzahl 16)- total - Gesamtanzahl der Suchergebnisse |
Ohne source-Attribut | Wird vom Template-Helper (>=v1.0.6) gerendert. | - query - Aktueller Suchbegriff- from - Startpunkt der aktuellen Seite (z.B. 1 bei Seitenanzahl 16)- to - Endpunkt der aktuellen Seite (z.B. 16 bei Seitenanzahl 16)- size - Seitenanzahl (z.B. 16)- total - Gesamtanzahl der Suchergebnisse |
sort-order
Überschreibt die Backend-Sortierung für das Element, in dem es gesetzt ist. Hauptsächlich für<ws-suggest-result> gedacht, um angezeigte Vorschläge anhand eines Feldes zu sortieren.
Syntax: <Feldname>_<Richtung>
Erklärung
| Teil | Beschreibung |
|---|---|
Feldname | Feldname aus der API-Response; muss in der Konfiguration des Suchmoduls unter display_fields eingetragen sein. |
Richtung | asc (aufsteigend) oder desc (absteigend). Default: asc |
