Such-Komponenten einbinden

Binde die footage.one Suche als Web Components in deine Website ein.

Überblick

footage.one stellt Web Components bereit, mit denen du eine Mediensuche direkt in deine eigene Website einbinden kannst. Die Komponenten verbinden sich mit deinem footage.one-Account und zeigen die Medien einer Distribution an.

Zum Ausprobieren vor der Integration: Auf https://ork.footage.one/demo den Token einer Distribution vom Typ „Öffentliche Suche" einfügen — die Suche läuft dann gegen die eigenen Daten.

Einbindung

Lade das Script in deine HTML-Seite:

<script src="https://ork.footage.one/asset-search/main.js"></script>

Konfiguration

Konfiguriere die Verbindung zu deinem footage.one-Account. Du benötigst den Host und einen JWT-Token. Den Token erhältst du, indem du eine Distribution vom Typ „Öffentliche Suche" erstellst — der JWT-Token wird in den Distributionseinstellungen angezeigt.

Per HTML-Element

<foc-config host="https://ork.footage.one" token="dein-jwt-token" language="de"></foc-config>

Per JavaScript

FoComponents.configure('https://ork.footage.one', 'dein-jwt-token', 'de');

Verfügbare Komponenten

foc-result — Suchergebnisse

Zeigt die aktuelle Ergebnisliste an:

<foc-result link-format="/detail/%SKU%/%SLUG%"></foc-result>

Das link-format definiert das URL-Muster für Detailseiten. Verfügbare Platzhalter:

Platzhalter Wert
%SKU% Die SKU des Assets, wenn sie die kanonische Form hat — drei Buchstaben gefolgt von Ziffern — sonst die UID
%SLUG% Der beschreibende URL-Slug in der Sprache der Anfrage, vom Backend geliefert
%UID% Die interne UID des Assets

Der Slug ist beschreibend, nicht eindeutig und nicht dauerhaft. Er wird aus dem Asset-Namen in der Sprache der Anfrage gebildet. Er ändert sich also mit der Sprache und bei jeder Umbenennung, und verschiedene Namen ergeben denselben Slug. Identifiziere ein Asset deshalb immer über %SKU% oder %UID%: /detail/%SLUG% allein führt zu Kollisionen. Deine Detailseite lädt das Asset über die SKU und akzeptiert einen abweichenden Slug oder leitet auf den aktuellen um.

Nutze %SLUG%, statt selbst einen Slug zu bilden. Dann passen Ergebnisliste und Detailseite in derselben Sprache zusammen. Bildet eine Integration ihren eigenen Slug, entstehen für dasselbe Asset unterschiedliche URLs.

Detail-Overlay statt Seitenwechsel

Standardmäßig folgt ein Klick auf eine Kachel ihrem href. Soll stattdessen ein Overlay geöffnet werden, setze link-navigate="false":

<foc-result link-format="/detail/%SKU%/%SLUG%" link-navigate="false"></foc-result>

Die Kachel behält dann ihren echten href im Markup, der Klick wird aber abgefangen und nur das foc:item-click-Event ausgelöst. Strg-/Cmd-/Shift-/Alt-Klick bleiben unangetastet — „in neuem Tab öffnen“ und „Link speichern unter“ funktionieren weiterhin.

Auf dieses Event reagierst du, um dein Overlay zu öffnen. Beachte: Das Asset liegt auf event.data, nicht auf event.detail:

document.addEventListener('foc:item-click', (event) => {
  openOverlay(event.data); // das vollständige Asset: uid, sku, slug, name, thumbnailUrl, …
});

Setze niemals link-format="javascript:void(0)". Das war früher der einzige Weg zu einem Overlay, hinterlässt aber eine Ergebnisliste ohne einen einzigen folgbaren Link — Suchmaschinen finden dann keines deiner Assets. link-navigate="false" löst dasselbe Problem, ohne die Links zu opfern.

foc-details — Asset-Detailansicht

Zeigt ein einzelnes Asset an. Ohne sku-Attribut wird die SKU aus dem URL-Parameter sku gelesen:

<foc-details sku="DWT000342"></foc-details>

foc-facets — Filter

Zeigt verfügbare Filteroptionen (Facetten) an:

<foc-facets format-counter sort-by-label="codec_norm_s,resolution_ss"></foc-facets>

foc-active-facets — Aktive Filter

Zeigt die aktuell aktiven Filter mit Möglichkeit zur Entfernung:

<foc-active-facets></foc-active-facets>

foc-pagination — Seitennavigation

<foc-pagination>
  <span slot="first">Erste</span>
  <span slot="previous">Zurück</span>
  <span slot="next">Weiter</span>
  <span slot="last">Letzte</span>
</foc-pagination>

foc-pagesize — Ergebnisse pro Seite

<foc-pagesize sizes="8,16,32,64" default-size="16"></foc-pagesize>

foc-result-count — Ergebnisanzahl

<foc-result-count format>
  <span slot="before-count">Insgesamt </span>
  <span slot="after-count"> Ergebnisse</span>
  <span slot="no-result">Keine Ergebnisse gefunden</span>
</foc-result-count>

foc-asset-keywords — Asset-Keywords

Zeigt Keywords für ein Asset an (muss innerhalb von foc-details stehen):

<foc-details sku="DWT000342">
  <foc-asset-keywords mode="keywords"></foc-asset-keywords>
</foc-details>

Modi: keywords, parentKeyword, freewords.

foc-asset-image — Asset-Bild

<foc-asset-image sku="DWT000342"></foc-asset-image>

JavaScript API

Konfiguration kann zur Laufzeit geändert werden:

FoComponents.changeToken('neuer-token');
FoComponents.changeHost('https://anderer-host.footage.one');
FoComponents.changeLanguage('en');
FoComponents.addFilter('aspect_norm_s', '16x9');
FoComponents.removeFilter('aspect_norm_s', '16x9');

Events

Alle Events lassen sich auf document abhören. Ihre Nutzdaten liegen auf event.data, nicht auf event.detail:

Event Beschreibung
foc:result Aktuelle Ergebnisliste
foc:result-count Anzahl der Ergebnisse
foc:facet-add Ein Filter wurde hinzugefügt
foc:facet-remove Ein Filter wurde entfernt
foc:facet-changed Liste der aktiven Filter
foc:search-start Suche gestartet
foc:search-end Suche abgeschlossen
foc:item-click Eine Ergebniskachel wurde geklickt (Daten: das Asset)