Sari la conținut

Craft CMS

Pluginul Wink pentru Craft CMS integrează inventarul de călătorii Wink în Craft 5 prin funcții Twig și un tip de câmp personalizat pentru editorul de conținut. Editorii pot selecta un layout Wink specific dintr-un meniu dropdown direct în editorul de intrări.

  • Craft CMS 5.x
  • PHP 8.1+
  • Composer
  1. Instalează prin Composer:
    Terminal window
    composer require wink2travel/craft-wink
  2. Activează pluginul în Control Panel la Settings → Plugins, sau prin CLI:
    Terminal window
    php craft plugin/install wink
  3. Accesează Settings → Wink în Control Panel.
  4. Introdu Client ID și Client Secret, selectează mediul și apasă Save. Mergi la Applications pentru a-ți obține credențialele.

Odată configurat, apelează funcțiile Twig Wink oriunde în template-urile tale:

{# Afișează o grilă de hoteluri #}
{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# Bara de căutare destinații #}
{{ winkLookup() }}
{# Buton pentru selectarea itinerariului #}
{{ winkSearch() }}
{# Buton cont utilizator #}
{{ winkAccount() }}

Funcția winkContent() injectează automat <wink-app-loader> prima dată când este apelată pe o pagină.

FuncțieOutputDescriere
winkContent(layout, id)<wink-content-loader>Carduri hotel, grile, hărți
winkLookup()<wink-lookup>Bara de căutare destinații
winkSearch()<wink-search-button>Buton selectare itinerariu
winkAccount()<wink-account-button>Autentificare / cont utilizator
winkItinerary()<wink-itinerary-button>Buton stare itinerariu
winkShoppingCart()<wink-shopping-cart-button>Buton coș de cumpărături

Adaugă un câmp Wink Layout în orice secțiune pentru a oferi editorilor un dropdown cu toate layout-urile disponibile din contul tău Wink:

  1. Mergi la Settings → Fields → New Field.
  2. Setează Field Type la Wink Layout.
  3. Adaugă câmpul în layout-ul tipului tău de intrare.
  4. Editorii pot acum selecta un layout direct în editorul de intrări — fără a copia ID-uri.

În template-ul tău, transmite valoarea câmpului către winkContent():

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