Как правильно включить контекстные ссылки в шаблоне поля с пользовательским кодом? - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь выяснить, есть ли способ включить 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. Добавление этой разметки и выборка идентификатора узла может решить проблему, но это кажется хакерским. Как правильно включить контекстные ссылки в шаблоне ветки поля?

{% 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 Ответ

1 голос
/ 31 мая 2019

Просто столкнулся с этой же проблемой - похоже, что контекстные ссылки отображаются {{ 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>
...