страница предложений по теме крючка() предоставляет файл шаблона по умолчанию в папке модуля


Я использую 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
Author: ARUN, 2016-07-20

1 answers

Эта проблема была решена путем добавления hook_theme(). Обычно шаблоны предложений по темам выбираются только тогда, когда они находятся в темах. Поэтому нам нужно явно определить предложения по темам, используя hook_theme() внутри модуля. Тогда только он берет templeate из вашей папки шаблонов модулей.

/**
 * Implements hook_theme().
 */
function mymodule_theme() {
  return array(
    'page__ajax' => array(
      'render element' => 'elements',
      'base hook' => 'page',
    ),
  );
}
 3
Author: ARUN, 2016-07-22 06:55:33