bootstrap_italia-8.x-0.x-dev/components/components-2/list/linklist-item.html.twig

components/components-2/list/linklist-item.html.twig
{#
/**
 * @file
 * Template for linklist-item component.
 * Docs: https://italia.github.io/bootstrap-italia/docs/organizzare-i-contenuti/liste/#liste-per-men%C3%B9-di-navigazione
 * Latest revision: v2.11.2
 *
 * Parameters:
 * - item, item contains:
 *   - attributes: HTML attributes for the menu item.
 *   - title: The menu link title.
 *   - url: The menu link url, instance of \Drupal\Core\Url
 *   - localized_options: Menu link localized options.
 *   - is_expanded: TRUE if the link has visible children within the current
 *     menu tree.
 *   - is_collapsed: TRUE if the link has children within the current menu tree
 *     that are not currently visible.
 *   - in_active_trail: TRUE if the link is in the active trail.
 * - title_tag (string) (default: 'h3')
 * - list_type (string) (default: '')
 * - wrapper_tag (string) (default: '')
 * - title_wrapper_tag (string) (default: '')
 * - level (string) (default: '')
 * - verbose_classes (boolean) (default: false)
 * - active_items_large (boolean) (default: false)
 * - active_items_bold (boolean) (default: false)
 * - show_link_description (boolean) (default: false)
 * - active_assistive_text (string) (default: '')
 * - show_icon (boolean) (default: false)
 * - linklist_item_classes (array) (default: '')
 * - linklist_item_attributes (obj attribute) (default: '')
 *
 * Examples:
   {% include '@bi-bcl/list/linklist-item.html.twig' with {
      item: item,
      level: 'x',
      list_type: 'dropdown',
   } %}
 *
 */
#}
{% apply spaceless %}
  {# Set defaults #}
  {# Check item type: link-item|menu-item #}
  {% set _item = item.link['#type'] == 'link' ? item.link : item %}
  {% set _title_tag = title_tag|default('h3') %}
  {% set _list_type = list_type|default('') %}
  {% set _wrapper_tag = wrapper_tag|default('') %}
  {% set _title_wrapper_tag = title_wrapper_tag|default('') %}
  {% set _level = level|default('') %}
  {% set _verbose_classes = verbose_classes ?? false %}
  {% set _active_items_large = active_items_large ?? false %}
  {% set _active_items_bold = active_items_bold ?? false %}
  {% set _show_link_description = show_link_description ?? false %}
  {% set _active_assistive_text = active_assistive_text|default('Current page'|trans) %}
  {% set _show_icon = show_icon ?? false %}
  {% set _linklist_item_classes = linklist_item_classes|default('') %}
  {% set _linklist_item_attributes = linklist_item_attributes|default('') %}

  {# Set options #}
  {% set _classes = [
    'list-item',
    _list_type is not empty ? _list_type ~ '-item',
    _verbose_classes and _level is not empty ? 'nav-link__level-' ~ _level,
    _item.in_active_trail ? 'active',
    _item.in_active_trail and _active_items_large ? 'large',
    _item.in_active_trail and _active_items_bold ? 'medium',
  ] %}

  {% if _linklist_item_classes is not empty %}
    {% set _classes = _classes|merge(linklist_item_classes) %}
  {% endif %}

  {# If is a link item #}
  {% if _item['#options'].attributes|length > 0 %}
    {% set linklist_item_attributes = _item['#options'].attributes %}
    {% set linklist_wrapper_classes = _item['#options'].attributes|join(' ')|trim %}

  {# If is a menu item #}
  {% elseif _item.attributes|length > 0 %}
    {% set linklist_item_attributes = _item.attributes %}
    {% set linklist_wrapper_classes = _item.attributes.class|join(' ')|trim %}

  {% elseif _linklist_item_attributes is empty %}
    {% set linklist_item_attributes = create_attribute() %}
    {% set linklist_wrapper_classes = '' %}
  {% endif %}

  {% set linklist_item_attributes = item.link['#type'] == 'link' ?
    linklist_item_attributes|merge({"class": _classes}) :
    linklist_item_attributes.addClass(_classes)
  %}

  {# Link item or menu item #}
  {% if _item['#url'].external or _item.url.external %}
    {% set linklist_item_attributes = linklist_item_attributes
      .setAttribute('target', '_blank')
      .setAttribute('rel', 'nofollow')
      .setAttribute('aria-label', _item.title ~ ' - ' ~ 'External link'|t ~ ' - ' ~ 'New window'|t)
    %}
  {% endif %}

  {# Component #}
  {%- if _wrapper_tag is not empty -%}
    <{{ _wrapper_tag }} class="{{ linklist_wrapper_classes }}">
  {%- endif -%}
    {# If a divider item #}
    {%- if _item.title == '<divider>' or _item['#title'] == '<divider>' -%}
      <span class="divider"></span>

    {# If a Nolink item #}
    {%- elseif
      (_item.url.isRouted and _item.url.routeName == '<nolink>') or
      (_item['#url'].isRouted and _item['#url'].routeName == '<nolink>')
    -%}
      <{{ _title_tag }} class="link-list-heading">{{ _item.title }}</{{ _title_tag }}>

    {# If a button item #}
    {%- elseif
      (_item.url.isRouted and _item.url.routeName == '<button>') or
      (_item['#url'].isRouted and _item['#url'].routeName == '<button>')
    -%}
      <{{ _title_tag }} class="link-list-heading">{{ _item.title }}</{{ _title_tag }}>

    {%- else -%}
      {%- set _linklist_title -%}

        {% if _show_icon %}
          {% include '@bi-bcl/icon/icon.html.twig' with {
            name: 'it-arrow-right-triangle',
            size: 'sm',
            icon_classes: ['me-2']
          } %}
        {% endif %}

        {%- if _title_wrapper_tag is not empty -%}
        <{{ _title_wrapper_tag }}{{ item.text_attributes ? item.text_attributes }}>
        {%- endif -%}

          {%- if _item.title -%}{# Menu item. #}
            {{- _item.title -}}
          {%- elseif _item['#title'] -%}{# Link item. #}
            {{- _item['#title'] -}}
          {%- elseif item.text -%}{# Link item no url #}
            {{- item.text -}}
          {%- elseif _item['#options'].attributes['title'] -%}{# Link item no title #}
            {{- _item['#options'].attributes['title'] -}}
          {%- endif -%}

          {# Original_link only in menu item #}
          {%- if _item.original_link.getDescription() and _show_link_description -%}
            <small class="d-block">{{ _item.original_link.getDescription() }}</small>
          {%- endif -%}

        {%- if _title_wrapper_tag is not empty -%}
          </{{ _title_wrapper_tag }}>
        {%- endif -%}

        {# in_active_trail only in menu item #}
        {%- if _item.in_active_trail -%}
          <span class="visually-hidden">{{ _active_assistive_text }}</span>
        {%- endif -%}
      {%- endset -%}

      {# Menu item. #}
      {%- if _item.url -%}
        {{ link(_linklist_title, _item.url, linklist_item_attributes) }}

      {# Link item. #}
      {%- elseif _item['#url'] -%}
        {{ link(_linklist_title, _item['#url'], linklist_item_attributes) }}

      {# Other. #}
      {%- else -%}
        {{ _linklist_title }}
      {%- endif -%}

    {%- endif -%}
  {%- if _wrapper_tag is not empty -%}
    </{{ _wrapper_tag }}>
  {%- endif -%}
{% endapply %}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc