Cómo extraer los valores de un campo enlace múltiple en field.html.twig

Descripción

Este código te permitirá extraer e imprimir en plantillas los valores de un campo enlace por separado "Texto del enlace" + "Enlace",  directamente en la plantilla del campo para conseguir, por ejemplo una lista con iconos en un campo múltiple de enlaces.

Instrucciones

Para extraer los valores de un campo enlace en un twig:

  1. Añade el campo enlace a tu contenido
     
  2. Activa el modo debug o depurador de Drupal para conocer el nombre de tus plantillas.
     
  3. Copia la plantilla "field.html.twig" y renómbrala según la sugerencia del modo depurador, Ej.: field--mis-enlaces.html.twig
     
  4. Sustituye el código que está debajo en tu plantilla y modifica las partes que hagan falta.
Código
{%
  set classes = [
    'field',
    'field--name-' ~ field_name|clean_class,
    'field--type-' ~ field_type|clean_class,
    'field--label-' ~ label_display,
  ]
%}
{%
  set title_classes = [
    'field__label',
    label_display == 'visually_hidden' ? 'visually-hidden',
  ]
%}

{% if label_hidden %}
  {% if multiple %}
    <div{{ attributes.addClass(classes, 'field__items', 'd-flex') }}>
      {% for item in items %}
        <div{{ item.attributes.addClass('field__item') }}>
          <a href="{{ item.content['#url']}}" class="btn btn-primary">
            {{ item.content['#title'] }}
          </a>
        </div>
      {% endfor %}
    </div>
  {% else %}
    {% for item in items %}
      <div{{ attributes.addClass(classes, 'field__item') }}>{{ item.content }}</div>
    {% endfor %}
  {% endif %}
{% else %}
  <div{{ attributes.addClass(classes) }}>
    <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
    {% if multiple %}
      <div class='field__items'>
    {% endif %}
    {% for item in items %}
      <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
    {% endfor %}
    {% if multiple %}
      </div>
    {% endif %}
  </div>
{% endif %}

Snippets relacionados

Lo siento!!!, todavía no tengo contenidos del blog para esta categoría, pero puedes buscar en los Blog o en Cursos

También puedes utilizar el buscador de la parte superior, para encontrar lo que buscas en toda la web.

Más Snippets