/ / Як я можу змінити шаблон вузла з модуля в Drupal 8? - drupal, twig, drupal-модулі, drupal-theming, drupal-8

Як змінити шаблон вузла з модуля в Drupal 8? - drupal, twig, drupal-модулі, drupal-тематизація, drupal-8

Я хотів би, щоб мій спеціальний модуль Drupal 8 формував інший шаблон для сторінок, які відповідають певній URL-адресі. Ось моя структура модуля:

/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 масив. Однак при отрисуванні сторінки новий шаблон ігнорується. Я спробував змити кеш-пам’яті, результатів немає.

Я не впевнений, як діяти. Вся документація, яку я знайшов, стосується додавання пропозицій тем із власної теми, а не користувацького модуля.

Будь-яка ідея, що я роблю неправильно? Щиро дякую за будь-яку допомогу!

Відповіді:

1 для відповіді № 1

Можливо, у вас є помилка в коді, який ви вставили, але папка, де ви маєте заміну шаблонів, повинна бути templates і ні template як ви писали. Не забувайте очищати кеші після зміни назви каталогу;)