страница предложений по теме крючка() предоставляет файл шаблона по умолчанию в папке модуля
Я использую hook_theme_suggestions_HOOK() для реализации пользовательского файла шаблона на моем веб-сайте drupal 8, как показано ниже.
/**
* Implements hook_theme_suggestions_HOOK().
*/
function mymodule_theme_suggestions_page(array $variables) {
$template_suggestions = array();
// This is used to display only $content.
if (isset($_GET['ajax']) && $_GET['ajax'] == 1) {
$template_suggestions[] = 'page__ajax';
}
return $template_suggestions;
}
Приведенный выше код работает нормально, и я могу добавить страницу шаблона - ajax.html.twig внутри моей текущей активной темы, и изменения в шаблоне отражаются на странице.
Но когда я помещаю этот файл в свой модуль, сам файл не обнаруживается, и изменения не отражаются на странице и принимают файл шаблона page.html.twg по умолчанию.
Как я могу предоставить файл шаблона по умолчанию в самом моем модуле?
1 answers
Эта проблема была решена путем добавления hook_theme()
. Обычно шаблоны предложений по темам выбираются только тогда, когда они находятся в темах. Поэтому нам нужно явно определить предложения по темам, используя hook_theme()
внутри модуля. Тогда только он берет templeate из вашей папки шаблонов модулей.
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return array(
'page__ajax' => array(
'render element' => 'elements',
'base hook' => 'page',
),
);
}