Манипулирование приоритетными темами

Я добавляю некоторые предложения тем, используя mytheme_theme_suggestions_alter(), когда выполняются определенные критерии. Моя проблема заключается в том, что по некоторым причинам эти дополнительные тематические предложения появляются в верхней части списка предложений по теме во время отладки.

В принципе, мое предложение темы игнорируется, поскольку Drupal полагает, что мои дополнительные предложения темы не являются приоритетом по сравнению с стандартными.

<!-- FILE NAME SUGGESTIONS:
   * views-view--venues-grid-rows.html.twig
   x views-view.html.twig
-->

Я пробовал некоторые «грязные» решения, например, пытаться очистить или отменить массив $suggestions[] без везения.

Я предполагаю, что крюк, который я использую, на самом деле работает слишком рано, однако я не могу найти более подходящий. Что-то, что связано с подключением к теме, было бы замечательно.

Спасибо заранее.

5 голосов | спросил Daniel Dewhurst 7 FebruaryEurope/MoscowbTue, 07 Feb 2017 19:28:51 +0300000000pmTue, 07 Feb 2017 19:28:51 +030017 2017, 19:28:51

1 ответ


0

Вам не нужно добавлять предложение темы, если вы пытаетесь переопределить шаблон представления для данного идентификатора вида. Смущение состоит в том, что предложения Views не отображаются в коде отладки (см .: https: //www.drupal.org/node/2118743 ).

Если вы добавите файл с именем views-view--view-machine-name.html.twig (замените machine-name, конечно) в каталоге templates и очистить кеши, он должен забрать его. Примечание: он должен быть templates, а не в корне вашей темы или my_templates или что-нибудь еще. Друпал придирчив.

Вам не нужно беспокоиться о весах модулей /тем, поскольку все функции модуля изменяются перед функциями изменения темы.

Наконец, если вы добавляете предложения по теме, я бы рекомендовал использовать более целенаправленный hook_theme_suggestions_HOOK_alter . (Для просмотров HOOK - это views-view, поэтому ваша функция будет выглядеть так:

function mytheme_theme_suggestions_views_view_alter(array &$suggestions, array $variables) { $suggestions[] = ... }

Надеюсь, что это поможет.

ответил mikeker 15 FebruaryEurope/MoscowbWed, 15 Feb 2017 22:37:57 +0300000000pmWed, 15 Feb 2017 22:37:57 +030017 2017, 22:37:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132