Salta ai contenuti

Craft CMS

Il Wink Craft CMS Plugin integra l’inventario viaggi Wink in Craft 5 tramite funzioni Twig e un tipo di campo personalizzato per l’editor di contenuti. Gli editor possono selezionare un layout Wink specifico da un menu a tendina direttamente nell’editor della voce.

  • Craft CMS 5.x
  • PHP 8.1+
  • Composer
  1. Installa tramite Composer:
    Terminal window
    composer require wink2travel/craft-wink
  2. Attiva il plugin nel Pannello di Controllo in Impostazioni → Plugin, oppure via CLI:
    Terminal window
    php craft plugin/install wink
  3. Vai su Impostazioni → Wink nel Pannello di Controllo.
  4. Inserisci il tuo Client ID e Client Secret, seleziona l’ambiente e clicca su Salva. Vai su Applications per recuperare le tue credenziali.

Una volta configurato, chiama le funzioni Twig di Wink ovunque nei tuoi template:

{# Visualizza una griglia di hotel #}
{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# Barra di ricerca destinazioni #}
{{ winkLookup() }}
{# Pulsante selezione itinerario #}
{{ winkSearch() }}
{# Pulsante account utente #}
{{ winkAccount() }}

La funzione winkContent() inietta automaticamente <wink-app-loader> la prima volta che viene chiamata in una pagina.

FunzioneOutputDescrizione
winkContent(layout, id)<wink-content-loader>Schede hotel, griglie, mappe
winkLookup()<wink-lookup>Barra di ricerca destinazioni
winkSearch()<wink-search-button>Pulsante selezione itinerario
winkAccount()<wink-account-button>Accesso / account utente
winkItinerary()<wink-itinerary-button>Pulsante stato itinerario
winkShoppingCart()<wink-shopping-cart-button>Pulsante carrello

Aggiungi un campo Wink Layout a qualsiasi sezione per offrire agli editor un menu a tendina con tutti i layout disponibili dal tuo account Wink:

  1. Vai su Impostazioni → Campi → Nuovo Campo.
  2. Imposta Tipo di Campo su Wink Layout.
  3. Aggiungi il campo al layout del tipo di voce.
  4. Gli editor possono ora selezionare un layout direttamente nell’editor della voce — niente più copia-incolla di ID.

Nel tuo template, passa il valore del campo a winkContent():

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