Siirry sisältöön

Craft CMS

Wink Craft CMS Plugin integroi Wink-matkavaraston Craft 5:een Twig-mallifunktioiden ja sisällönmuokkaajan mukautetun kenttätyypin avulla. Muokkaajat voivat valita tietyn Wink-asettelun suoraan merkinnän muokkaajassa pudotusvalikosta.

  • Craft CMS 5.x
  • PHP 8.1+
  • Composer
  1. Asenna Composerilla:
    Terminal window
    composer require wink2travel/craft-wink
  2. Aktivoi laajennus Ohjauspaneelissa kohdassa Asetukset → Laajennukset tai komentoriviltä:
    Terminal window
    php craft plugin/install wink
  3. Siirry Ohjauspaneelissa kohtaan Asetukset → Wink.
  4. Syötä Client ID ja Client Secret, valitse ympäristö ja klikkaa Tallenna. Hae tunnukset [Sovellukset]-sivulta (/portal/settings/applications).

Kun asetukset on tehty, kutsu Wink Twig -funktioita missä tahansa malleissasi:

{# Näytä hotelliruudukko #}
{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# Kohteen hakupalkki #}
{{ winkLookup() }}
{# Matkaohjelman valintapainike #}
{{ winkSearch() }}
{# Käyttäjätilin painike #}
{{ winkAccount() }}

winkContent()-funktio lisää automaattisesti <wink-app-loader> ensimmäisellä kutsukerralla sivulla.

FunktioTulosteKuvaus
winkContent(layout, id)<wink-content-loader>Hotellikortit, ruudukot, kartat
winkLookup()<wink-lookup>Kohteen hakupalkki
winkSearch()<wink-search-button>Matkaohjelman valintapainike
winkAccount()<wink-account-button>Kirjautuminen / käyttäjätili
winkItinerary()<wink-itinerary-button>Matkaohjelman tilapainike
winkShoppingCart()<wink-shopping-cart-button>Ostoskoripainike

Lisää Wink Layout -kenttä mihin tahansa osioon, jotta muokkaajat saavat pudotusvalikon kaikista Wink-tilisi käytettävissä olevista asetteluista:

  1. Siirry kohtaan Asetukset → Kentät → Uusi kenttä.
  2. Valitse Kenttätyyppiksi Wink Layout.
  3. Lisää kenttä merkintätyypin kenttäasetteluun.
  4. Muokkaajat voivat nyt valita asettelun suoraan merkinnän muokkaajassa — ei tarvitse kopioida tunnuksia.

Mallissasi välitä kentän arvo winkContent()-funktiolle:

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