用自定义代码在字段模板上启用上下文链接的正确方法是什么?

时间:2019-04-05 04:28:43

标签: drupal theming

我正在尝试确定是否有一种方法可以使用自定义代码在现场树枝模板上启用contextual-links。我有一个实体引用字段,并创建了一个字段模板field--field-featured-page.html.twig,下面是该字段模板的代码段。

清除缓存后,我似乎无法启用上下文链接。

enter image description here

<div class="related-links -home :three-column">

    {% for item in items  %}

        {% set entity = item.content['#options'].entity %}

        <div class="related-link">
            <a href="{{ path('entity.node.canonical', {'node': entity.id})  }}" class="thumbnail -landscape" style="background-image:url({{ file_url(entity.field_image.entity.uri.value) }})">
            </a>
            <h2 class="preamble-heading" data-preamble="{{ entity.field_preamble.value }}">{{ entity.label }}</h2>

        </div>


    {% endfor %}
</div>

下面是contextual-link的标记的摘录。添加此标记并获取节点ID可能会解决该问题,但似乎有些骇人听闻。在现场树枝模板上启用上下文链接的正确方法是什么?

{% set node_id = item.content['#options'].entity.id %} 

{# Contextual Links #}

<div data-contextual-id="node:node={{ node_id }}:&amp;langcode={{ lang_code }}" class="contextual contextual-button" role="form">
<button class="trigger focusable" type="button" aria-pressed="false"></button>

    <ul class="contextual-links" hidden="">
        <li class="entitynodeedit-form"><a href="{{ url('<front>') }}node/{{ node_id }}/edit">Edit</a></li>
        <li class="entitynodedelete-form"><a href="{{ url('<front>') }}node/{{ node_id }}/delete">Delete</a></li>
        <li class="content-translationcontextual-linksnode"><a href="{{ url('<front>') }}node/{{ node_id }}/translations">Translate</a></li>
    </ul>
</div>

下面的代码是特定内容类型(Basic Page)

的模板
{{ page.header }}

<div {{attributes.addClass('iom-home')}}>
    {{ title_suffix }}




    {{ content.field_featured_page  }}




</div>

{{ page.footer }}

1 个答案:

答案 0 :(得分:1)

碰到同样的问题-似乎上下文链接由每个模板中的{{ title_suffix }}呈现。至少对于块模板来说似乎是这种情况。不确定是否适用于字段模板。

因此可以将代码段更新为以下内容(假设它与field--field-featured-page.html.twig的内容相对应):

<div class="related-links -home :three-column">

    {{ title_suffix }}

    {% for item in items  %}

        {% set entity = item.content['#options'].entity %}

        <div class="related-link">
            <a href="{{ path('entity.node.canonical', {'node': entity.id})  }}" class="thumbnail -landscape" style="background-image:url({{ file_url(entity.field_image.entity.uri.value) }})">
            </a>
            <h2 class="preamble-heading" data-preamble="{{ entity.field_preamble.value }}">{{ entity.label }}</h2>

        </div>


    {% endfor %}
</div>