Я бы хотел, чтобы мой пользовательский модуль Drupal 8 заставлял использовать другой шаблон для страниц, соответствующих определенному URL. Вот мой модуль структуры:Как изменить шаблон узла из модуля в Drupal 8?
/sass_edit
/css
/js
/template
builder_template.html.twig // this is the template file
sass_edit.module
...
sass_edit.*.yml // various yml files
Это содержимое builder_template.html.twig
:
<h1>test</h1>
Вот соответствующие строки кода в моем .module
файле:
function sass_edit_theme_suggestions_alter(array &$suggestions, array $variables, $hook) {
$current_path = \Drupal::service('path.current')->getPath();
if(\Drupal::currentUser()->isAuthenticated() && strpos($current_path, "/builder/") >= 0) {
$suggestions[] = 'builder_template';
}
// kint($suggestions);
// die();
}
Когда я посещаю страница, URL которой содержит /builder/
, код запускается и добавляет строку builder_template
в массив $suggestions
. Однако, когда страница отображается, новый шаблон игнорируется. Я попытался промыть кеши, без каких-либо результатов.
Я не уверен, как действовать. Вся документация, которую я нашел, относится к добавлению предложений темы из пользовательской темы, а не к настраиваемому модулю.
Любая идея, что я делаю неправильно? Большое вам спасибо за любую помощь!
Вы включили Twig Debug? Попробуйте $ suggest [] = $ hook. '__'. 'Builder_template'; У Twig Engine иногда возникали проблемы с подключением. –