Я хотів би, щоб мій спеціальний модуль 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
як ви писали. Не забувайте очищати кеші після зміни назви каталогу;)