3

我想在字段的<a>-Tag 中添加一个类,该字段由 URL 链接和链接文本(它是“链接”类型的字段)组成,字段的名称是content.field_c_button_link 所以在我的 HTML 文件中使用 twig 我想要这样的东西:

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

如何正确添加课程?

4

2 回答 2

4

为什么不手动将锚标签拼凑在一起?这样你就可以完全控制一切。在你的模板中有这样的东西

<a href="{{content.field_url.0['#url']}}" class="custom classes">{{content.field_url.0['#title']}}</a>
于 2016-03-25T03:14:30.383 回答
0

好的,这太可怕了,但这是我发现让它工作的唯一方法:

如果您查看链接的默认 drupal 构建数组,您应该看到 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"

我能在 twig 中找到这样做的唯一方法是使用一系列临时并将它们与原始数组合并,因为 twig 不会解析我尝试过的任何其他内容:

{% 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}) %}

注意 |without 是 Drupal/twig 过滤器。我不得不用它来删除空的“0”元素,以避免链接打印两次。

请告诉我有一个更简单的方法。

于 2016-02-29T01:26:24.007 回答