{% spaceless %} {# /** * @file * Theme implementation for a ECL Language List Selector. */ Parameters: - "eu_category" (string) (default: ''); - "non_eu_category" (string) (default: '') - "items" (array) (default: []) - "lang" (string) (default: '') - "label" (string) (default: '') - "path" (string) (default: '') - "active (boolean) (default: false) - non_eu_items (array) (default: []) - "lang" (string) (default: '') - "label" (string) (default: '') - "path" (string) (default: '') - "active (boolean) (default: false) - "label" (string): Label of Language List Button - "code" (string): Language code of Language List Button - "path" (string) (Link url): URL of Language List Button - "icon_path" (string) (Link url): Icon Path - "extra_classes" (string) (default: '') - "extra_attributes" (array) (default: []): format: [ { "name" (string) (default: ''), "value" (string) (default: '') }, ... ] #} {# Internal properties #} {% set _label = label|default('') %} {% set _code = code|default('') %} {% set _path = path|default('') %} {% set _icon_path = icon_path|default('') %} {% set _css_class = 'ecl-site-header__selector' %} {% set _extra_attributes = [] %} {# Internal logic - Process properties #} {% if eu_languages is not empty and eu_languages is iterable %} {% set items = eu_languages %} {# Use category titles only if both category of languages are present. #} {% if non_eu_languages is not empty and non_eu_languages is iterable %} {% set eu_category = 'EU official languages'|t %} {% set non_eu_category = 'Other languages'|t %} {% endif %} {% endif %} {% if extra_classes is defined and extra_classes is not empty %} {% set _css_class = _css_class ~ ' ' ~ extra_classes %} {% endif %} {% if extra_attributes is defined and extra_attributes is not empty and extra_attributes is iterable %} {% for attr in extra_attributes %} {% set _extra_attributes = _extra_attributes ~ ' ' ~ attr.name ~ '="' ~ attr.value ~ '"' %} {% endfor %} {% endif %} {% include '@ecl-twig/language-list' with { eu_category: eu_category, non_eu_category: non_eu_category, items: items, non_eu_items: non_eu_languages, icon_path: _icon_path, overlay: true, title: 'Select your language'|t, close_label: 'Close'|t, extra_attributes: [ { name: 'aria-labelledby', value: 'ecl-language-list__title' }, { name: 'role', value: 'dialog' }, { name: 'hidden' } ] } only %} {% endspaceless %}