Skip to content

Instantly share code, notes, and snippets.

@blackice2999
Created August 3, 2015 10:52
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save blackice2999/a473099551dd4445c4dd to your computer and use it in GitHub Desktop.
Save blackice2999/a473099551dd4445c4dd to your computer and use it in GitHub Desktop.
Drupal 8 - How to add classes to link (render array) without using preprocess....
{#
/**
* @file
* Default theme implementation for a local task link.
*
* Available variables:
* - attributes: HTML attributes for the wrapper element.
* - is_active: Whether the task item is an active tab.
* - link: A rendered link element.
*
* Note: This template renders the content for each task item in
* menu-local-tasks.html.twig.
*
* @see template_preprocess_menu_local_task()
*
* @ingroup themeable
*/
#}
{#<li{{ attributes }}>#}
{% set link = link|merge({'#attributes':[{'class':link['#attributes']['class']|merge(['test'])}]}) %}
{{ link }}
{#</li>#}
@vigoritodcx
Copy link

vigoritodcx commented Dec 10, 2020

Had similar issue, but im displaying terms rendered as labels, i need to add some of my own classes.
In my code, this: link['#attributes']['class'] is null so i came up with this. Also, in the top of the twig i do some logic to understand which class associate to the term.

<li class="list-inline-item">
    {% set term = term|merge({'#attributes':{'class':btn_classes}}) %}
    {{ term }}
</li>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment