Osadzanie komponentów wyszukiwania

Osadź wyszukiwarkę footage.one jako komponenty webowe na swojej stronie internetowej.

Przegląd

footage.one udostępnia komponenty webowe, dzięki którym możesz osadzić wyszukiwarkę mediów bezpośrednio na swojej stronie internetowej. Komponenty łączą się z Twoim kontem footage.one i wyświetlają media z dystrybucji.

Chcesz przetestować komponenty przed integracją? Otwórz https://ork.footage.one/demo i wklej token dystrybucji typu „Wyszukiwanie publiczne" — wyszukiwanie działa wtedy na Twoich danych.

Osadzanie

Załaduj skrypt na swojej stronie HTML:

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

Konfiguracja

Skonfiguruj połączenie z kontem footage.one. Potrzebujesz hosta i tokena JWT. Token otrzymasz, tworząc Dystrybucję typu „Wyszukiwanie publiczne" — token JWT jest wyświetlany w ustawieniach dystrybucji.

Za pomocą elementu HTML

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

Za pomocą JavaScript

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

Dostępne komponenty

foc-result — Wyniki wyszukiwania

Wyświetla aktualną listę wyników:

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

link-format definiuje wzorzec URL dla stron szczegółowych. Dostępne symbole zastępcze:

Symbol Wartość
%SKU% SKU zasobu, jeśli ma kanoniczną postać — trzy litery, po nich cyfry — w przeciwnym razie UID
%SLUG% Kanoniczny slug URL dostarczany przez backend
%UID% Wewnętrzne UID zasobu

Slug jest opisowy, nie unikalny. Powstaje z nazwy zasobu, a różne nazwy dają ten sam slug. Zawsze łącz go z %SKU% lub %UID% — samo /detail/%SLUG% doprowadzi do kolizji.

Używaj %SLUG% zamiast tworzyć slug samodzielnie. Slug pochodzi z backendu i jest tym samym ciągiem znaków, który trafia do mapy witryny. Jeśli integracja wygeneruje własny, ten sam zasób będzie dostępny pod kilkoma adresami URL — a to Google traktuje jako duplicate content.

Nakładka ze szczegółami zamiast przejścia na inną stronę

Domyślnie kliknięcie kafelka podąża za jego href. Aby zamiast tego otworzyć nakładkę, ustaw link-navigate="false":

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

Kafelek zachowuje wtedy prawdziwy href w znacznikach, ale kliknięcie zostaje przechwycone i wyzwala jedynie zdarzenie foc:item-click. Kliknięcia z Ctrl/Cmd/Shift/Alt działają bez zmian, więc „otwórz w nowej karcie” i „zapisz link jako” nadal działają.

Obsłuż to zdarzenie, aby otworzyć własną nakładkę. Uwaga: zasób znajduje się w event.data, a nie w event.detail:

document.addEventListener('foc:item-click', (event) => {
  openOverlay(event.data); // pełny zasób: uid, sku, slug, name, thumbnailUrl, …
});

Nigdy nie ustawiaj link-format="javascript:void(0)". Kiedyś był to jedyny sposób na nakładkę, ale pozostawia listę wyników bez ani jednego linku do podążenia — wyszukiwarki nie znajdą wtedy żadnego z Twoich zasobów. link-navigate="false" rozwiązuje ten sam problem bez poświęcania linków.

foc-details — Widok szczegółowy zasobu

Wyświetla pojedynczy zasób. Bez atrybutu sku SKU jest odczytywane z parametru URL sku:

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

foc-facets — Filtry

Wyświetla dostępne opcje filtrowania (fasetki):

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

foc-active-facets — Aktywne filtry

Wyświetla aktualnie aktywne filtry z możliwością ich usunięcia:

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

foc-pagination — Nawigacja strony

<foc-pagination>
  <span slot="first">Pierwsza</span>
  <span slot="previous">Poprzednia</span>
  <span slot="next">Następna</span>
  <span slot="last">Ostatnia</span>
</foc-pagination>

foc-pagesize — Wyniki na stronie

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

foc-result-count — Liczba wyników

<foc-result-count format>
  <span slot="before-count">Łącznie </span>
  <span slot="after-count"> wyników</span>
  <span slot="no-result">Nie znaleziono wyników</span>
</foc-result-count>

foc-asset-keywords — Słowa kluczowe zasobu

Wyświetla słowa kluczowe dla zasobu (musi znajdować się wewnątrz foc-details):

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

Tryby: keywords, parentKeyword, freewords.

foc-asset-image — Obraz zasobu

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

API JavaScript

Konfigurację można zmieniać w czasie działania:

FoComponents.changeToken('nowy-token');
FoComponents.changeHost('https://inny-host.footage.one');
FoComponents.changeLanguage('pl');
FoComponents.addFilter('aspect_norm_s', '16x9');
FoComponents.removeFilter('aspect_norm_s', '16x9');

Zdarzenia

Wszystkich zdarzeń można nasłuchiwać na document. Ich dane znajdują się w event.data, a nie w event.detail:

Zdarzenie Opis
foc:result Aktualna lista wyników
foc:result-count Liczba wyników
foc:facet-add Filtr został dodany
foc:facet-remove Filtr został usunięty
foc:facet-changed Lista aktywnych filtrów
foc:search-start Wyszukiwanie rozpoczęte
foc:search-end Wyszukiwanie zakończone
foc:item-click Kliknięto kafelek wyniku (dane: zasób)