Для добавления suggestions требуется использовать соответствующий группе шаблонов hook. Если название шаблона не известно, то его можно подсмотреть в режиме отладки.
Режим отладки и локальная конфигурация
Режим отладки twig включается в настройках сервисов. И обычно /sites/default/default.services.yml не меняют для внесения настроек дебаггера, а создают дополнительно файл /sites/development.services.yml, который подключается через настройки сайта. Опять же /sites/default/settings.php не трогают для этого, а создают файл с локальными настройками, вроде /sites/default/settings.local.php.
Теперь всё по порядку.
Добавляем в /sites/default/settings.php подключение локальных настроек:
1 2 3 |
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { include $app_root . '/' . $site_path . '/settings.local.php'; } |
Создаём файл /settings.local.php куда прописываем подключение настроек сервисов:
1 |
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml'; |
А вот здесь уже нужно добавить настройки twig:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Local development services. # # To activate this feature, follow the instructions at the top of the # 'example.settings.local.php' file, which sits next to this file. parameters: http.response.debug_cacheability_headers: true twig.config: debug: true auto_reload: true cache: false services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory |
Можно было конечно изменить дефолтные настройки, но лучше следовать правильным практикам разработки.
Где взять имя шаблона
Все предыдущие манипуляции проделаны не зря, т.к. они включают вывод дополнительной информации прямо в шаблон.
Теперь открыв HTML код страницы, вы увидите секции комментариев перед каждым шаблоном.
THEME_HOOK — как раз то, что нам нужно. Тут же вы увидите имена известных drupal шаблонов. Используемый в текущий момент — помечен крестиком.
Для добавления своих имен нужно создать хук вида:
1 2 3 |
function THEME_NAME_theme_suggestions_THEME_HOOK_alter(array &$suggestions, array $variables) { $suggestions[] = ...; } |
Останется только подставить переменные THEME_NAME и THEME_HOOK, ну и определиться с именем добавляемого шаблона(-ов).