Przejdź do głównej zawartości

Craft CMS

Wink Craft CMS Plugin integruje inwentarz podróży Wink z Craft 5 poprzez funkcje szablonów Twig oraz niestandardowy typ pola dla edytora treści. Redaktorzy mogą wybrać konkretny układ Wink z listy rozwijanej bezpośrednio w edytorze wpisów.

  • Craft CMS 5.x
  • PHP 8.1+
  • Composer
  1. Zainstaluj przez Composer:
    Okno terminala
    composer require wink2travel/craft-wink
  2. Aktywuj wtyczkę w Panelu Sterowania w Ustawienia → Wtyczki lub przez CLI:
    Okno terminala
    php craft plugin/install wink
  3. Przejdź do Ustawienia → Wink w Panelu Sterowania.
  4. Wprowadź swój Client ID i Client Secret, wybierz środowisko i kliknij Zapisz. Aby pobrać dane uwierzytelniające, przejdź do Applications.

Po konfiguracji wywołuj funkcje Twig Wink w dowolnym miejscu swoich szablonów:

{# Renderuj siatkę hoteli #}
{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# Pasek wyszukiwania destynacji #}
{{ winkLookup() }}
{# Przycisk wyboru planu podróży #}
{{ winkSearch() }}
{# Przycisk konta użytkownika #}
{{ winkAccount() }}

Funkcja winkContent() automatycznie wstrzykuje <wink-app-loader> przy pierwszym wywołaniu na stronie.

FunkcjaWyjścieOpis
winkContent(layout, id)<wink-content-loader>Karty hoteli, siatki, mapy
winkLookup()<wink-lookup>Pasek wyszukiwania destynacji
winkSearch()<wink-search-button>Przycisk wyboru planu podróży
winkAccount()<wink-account-button>Logowanie / konto użytkownika
winkItinerary()<wink-itinerary-button>Przycisk statusu planu podróży
winkShoppingCart()<wink-shopping-cart-button>Przycisk koszyka

Dodaj pole Wink Layout do dowolnej sekcji, aby dać redaktorom listę rozwijaną ze wszystkimi dostępnymi układami z Twojego konta Wink:

  1. Przejdź do Ustawienia → Pola → Nowe pole.
  2. Ustaw Typ pola na Wink Layout.
  3. Dodaj pole do układu pól swojego typu wpisu.
  4. Redaktorzy mogą teraz wybierać układ bezpośrednio w edytorze wpisów — bez kopiowania i wklejania ID.

W szablonie przekaż wartość pola do winkContent():

{{ winkContent(entry.winkLayout.type, entry.winkLayout.id) }}