Ir al contenido

Craft CMS

El Wink Craft CMS Plugin integra el inventario de Wink travel en Craft 5 mediante funciones Twig y un tipo de campo personalizado para el editor de contenido. Los editores pueden seleccionar un diseño específico de Wink desde un menú desplegable directamente en el editor de entradas.

  • Craft CMS 5.x
  • PHP 8.1+
  • Composer
  1. Instala vía Composer:
    Ventana de terminal
    composer require wink2travel/craft-wink
  2. Activa el plugin en el Panel de Control en Settings → Plugins, o vía CLI:
    Ventana de terminal
    php craft plugin/install wink
  3. Ve a Settings → Wink en el Panel de Control.
  4. Ingresa tu Client ID y Client Secret, selecciona tu entorno y haz clic en Save. Ve a Applications para obtener tus credenciales.

Una vez configurado, llama a las funciones Twig de Wink en cualquier parte de tus plantillas:

{# Renderiza una cuadrícula de hoteles #}
{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# Barra de búsqueda de destinos #}
{{ winkLookup() }}
{# Botón selector de itinerario #}
{{ winkSearch() }}
{# Botón de cuenta de usuario #}
{{ winkAccount() }}

La función winkContent() inyecta automáticamente <wink-app-loader> la primera vez que se llama en una página.

FunciónSalidaDescripción
winkContent(layout, id)<wink-content-loader>Tarjetas de hotel, cuadrículas, mapas
winkLookup()<wink-lookup>Barra de búsqueda de destinos
winkSearch()<wink-search-button>Botón selector de itinerario
winkAccount()<wink-account-button>Inicio de sesión / cuenta de usuario
winkItinerary()<wink-itinerary-button>Botón de estado del itinerario
winkShoppingCart()<wink-shopping-cart-button>Botón del carrito

Agrega un campo Wink Layout a cualquier sección para que los editores tengan un menú desplegable con todos los diseños disponibles de tu cuenta Wink:

  1. Ve a Settings → Fields → New Field.
  2. Configura Field Type a Wink Layout.
  3. Añade el campo al diseño de campos de tu tipo de entrada.
  4. Los editores ahora pueden seleccionar un diseño directamente en el editor de entradas — sin copiar y pegar IDs.

En tu plantilla, pasa el valor del campo a winkContent():

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