Приветствую специалистов по темизации!
Есть представление myview имеющее несколько блоков.
В папке темы следующие файлы:
views-view.html.twig
views-view--block.html.twig
views-view--myview--block-1.html.twig
views-view--myview--block-2.html.twig
views-view--myview--block-3.html.twig
views-view--block.html.twig
views-view--myview--block-1.html.twig
views-view--myview--block-2.html.twig
views-view--myview--block-3.html.twig
Вопрос: как сделать, чтобы представления из всех дисплеев одной вьюхи формировались из одного twig файла?
Сейчас если я заменяю
views-view--myview--block-1.html.twig
views-view--myview--block-2.html.twig
views-view--myview--block-3.html.twig
views-view--myview--block-2.html.twig
views-view--myview--block-3.html.twig
на
views-view--myview.html.twig
вывод формируется из
views-view--block.html.twig
Комментарии
А что в template suggestions?
x views-view--myview--block-1.html.twig
* views-view--myview.html.twig
x views-view--myview--block-1.html.twig
* views-view.html.twig
BEGIN OUTPUT from 'themes/custom/mytheme/templates/views-view--myview--block-1.html.twig'
Но, как я написал выше переименование
views-view--myview--block-1.html.twig
в
views-view--myview.html.twig
ничего не дает.
если во вьюхах выводятся поля из ноды, то можно в отображаемых во вьюсах нодах сделать нужные режимы отображения и в шаблоне ноды прописать проверку этого режима отображения и соответствующего html для него, и во вьюхах выбрать эти режимы отображения контента.
Если вы оставили только views-view--myview.html.twig, почистили кеш и уверены, что шаблон назван правильно, а дисплеем вы выводите не таблицы (там другой обёрточный шаблон: views-view-table.html.twig) - должно переопределять.
Попробуйте, как вариант, переименовать views и шаблоны, при этом в имени не используйте тире, только нижнее подчёркивание. Возможно это сработает, если проблема как-то связана с кешем.
В ваших примерах все верно:
views-view.html.twig - для всех представлений на сайте переопределит стандартный шаблон обертки
views-view--myview.html.twig предопределит общую обёртку для всех представлений в "myview"
views-view--myview--block-1.html.twig переопределит общую обёртку для представления с именем block-1, которое создано во views с именем "myview"
Для таблиц:
views-view-table--myview.html.twig
views-view--block.html.twig имеет больший вес, чем views-view--myview.html.twig. Чтобы его переопределить придется использовать views-view--myview--block.html.twig
Чтобы не дублировать код можно в нем сделать include views-view--myview.html.twig