2015-11-18 6 views
2

Я хочу добавить класс в <a> -Таг поля, состоящий из URL-ссылки и текста ссылки (это поле типа «Ссылка») и имя поля content.field_c_button_link Так с прутиком в моем HTML-файл, я хочу иметь что-то вроде этого:Добавить класс в поле содержимого (ссылка) в drupal

{{ content.field_c_button_link.0.addClass('button blue') }} 

Как я могу добавить класс правильно?

+0

Вы должны попробовать {{content.field_c_button_link [0] .addClass ('button blue')}} – Eyal

ответ

0

Хорошо, это ужасно, но это единственный способ, которым я нашел, чтобы получить эту работу:

Если посмотреть на массиве построить Друпали по умолчанию для вашей ссылки, вы должны видеть, что content.field_c_button_link.0 массив (4)

'#type' => string(4) "link" 
'#title' => string(15) "Big Blue Button" 
'#options' => array(0) 
'#url' => object Drupal\Core\Url(11) 

Таким образом, чтобы установить классы непосредственно на <a> теге мы должны загрузить «#options» (который в настоящее время пуст) с правой настройки подмассивов

'#options' => array(1) 
'attributes' => array(1) 
'class' => array(2) 
string(6) "button" 
string(4) "blue" 

Единственный способ, которым я мог бы найти, чтобы сделать это в веточке было использовать ряд временных секретарей и их слияние с исходного массива, потому что прут не будет больше ничего разобрать я попробовал:

{% set temp = {'attributes': {'class': ['button','blue']}} %} 
{% set temp2 = content.field_c_button_link.0 %} 
{% set temp2 = temp2|merge({'#options': temp}) %} 
{% set temp3 = content.field_c_button_link|without('0') %} 
{% set temp3 = temp3|merge({'0': temp2}) %} 
{% set content = content|merge({'field_c_button_link': temp3}) %} 

Примечание к | без которого является фильтром Drupal/twig. Я должен был использовать его, чтобы удалить пустой элемент «0», чтобы избежать двойной печати ссылки.

Пожалуйста, скажите мне, что есть более простой способ.

3

Почему бы не объединить анкерную метку вручную? Таким образом, вы полностью контролируете все. Что-то вроде этого в вашем шаблоне

<a href="{{content.field_url.0['#url']}}" class="custom classes">{{content.field_url.0['#title']}}</a>