Views, файлы twig, {{ title_suffix }}

Тип материала: 
Версия Drupal: 
Модули и темы: 
Чт, 08/12/2016 - 05:12

Drupal 8.2.4

Вопрос новичка о шаблонах.

Я бы с удовольствием использовал поле "Контекстные ссылки" во view'сах, но к сожалению баг:
https://www.drupal.org/node/2532200
Висит давно уходить не хочет =(
Поэтому подумал вкрутить на уровне шаблонов чтоли... Заодно по-практиковаться...

В файле
\core\themes\classy\templates\views\views-view.html.twig
Я могу использовать {{ title_suffix }} и контекстные ссылки.

Однако в
\core\themes\classy\templates\views\views-view-unformatted.html.twig
такой опции уже нет.

Насколько я понял, views-view-unformatted использует функцию:
template_preprocess_views_view_unformatted()

А views-view.html.twig использует
template_preprocess_views_view()

Дык вот вопрос - реально ли добавить функционал {{ title_suffix }} в функцию:
template_preprocess_views_view_unformatted()
?

После чего создать шаблон, чё-нить вроде:
views-view-unformatted--content_from_category.html.twig
и использовать в этом шаблоне {{ title_suffix }}?

Или же не стоит даже этим заниматься?

0 Спасибо

Комментарии

Аватар пользователя gun_dose
6 months 2 недели назад gun_dose #

А может просто вывести поле nid и переопределить его вывод как

<div *класс контекстной ссылки*><a href="/node/[nid]/edit">Редактировать</a></div>

А в класс строки добавить класс контекстной обёртки?

1 Спасибо
Аватар пользователя mildok
6 months 2 недели назад mildok #

Блин, да вы ж гений! Совсем забыл, что есть же поле с ID. Огромное спасибо!

Действительно, сделал так:
Добавил поля:
Содержимое: Заголовок [скрыто]
Содержимое: ID [скрыто]
Содержимое: Body [скрыто]
Глобальный: Пользовательский текст
Заголовок, ID, Body исключены из вывода, конечно же =)

В поле пользовательский текст сделал такое:

<article data-history-node-id="{{ nid }}" data-quickedit-entity-id="node/{{ nid }}" role="article" class="contextual-region" data-quickedit-entity-instance-id="0">
<div class="contextual" role="form" data-contextual-id="node:node={{ nid }}">
        <button class="trigger focusable visually-hidden" type="button" aria-pressed="false">Открыть {{ title }} конфигурационные настройки</button>
                <ul class="contextual-links" hidden="">
                        <li class="quickedit"><a href="" role="button" aria-pressed="false">Быстрое редактирование</a></li>
                        <li class="entitynodeedit-form"><a href="/node/{{ nid }}/edit?destination=node">Редактировать</a></li>
                        <li class="entitynodedelete-form"><a href="/node/{{ nid }}/delete?destination=node">Удалить</a></li>
                        <li class="node-cloneprepopulate-node"><a href="/node/{{ nid }}/clone/prepopulate?destination=node">Clone</a></li>
                </ul>
</div>
<h2>{{ title }}</h2>
{{ body }}
</article>

Вуаля - получаем-с полный аналог контекстных ссылок, которые отображаются, если сделать отображение не "Неформатированный список", а "Содержание: Анонс"... Иначе говоря аналог того что, как я понимаю даёт {{ title_suffix }}...

Правда есть 2 минуса конечно:

  • Если в ядре чё-нить изменится, например уберут, ну или там css contexual поменяют... Хотя чё энто я - можно же все классы css скопировать себе в собственный style.css и будут пожизненно отображаться как надо... =)
  • Второй минус - данный код будут видеть, как авторизованные пользователи так и не авторизованные =( Интересно, а можно ли во views добавить такое поле, которое будет скрыто, если пользователь не авторизован.. Ну энто другая история - сейчас буду копать её... =)
0 Спасибо