Рейтинг:0

html--user--wildcard-id--module.html.twig

флаг cn

Как перенести форматированные текстовые поля из-за пределов Drupal без преобразования HTML-тегов в объекты У меня есть страница по пути /пользователь/{идентификатор}/модуль

, и я пытаюсь заставить Drupal загружать пользовательский шаблон из моего модуля при доступе к этой странице. Выходные данные отладки ветки показывают предложения для имени шаблона, как показано ниже, но, похоже, он не подбирает шаблон даже после перестроения кеша. Страница должна отображаться для всех пользователей, поэтому ее нельзя привязать к определенному идентификатору, но html--пользователь--module.html.twig

<!-- FILE NAME SUGGESTIONS:
   * html--user--module.html.twig
   * html--user--123456.html.twig
   * html--user--%.html.twig
   * html--user.html.twig
   x html.html.twig
-->

не уважается. Есть ли какой-то синтаксис, который я не смог найти, например ?

sonfd avatar
флаг in
Вы должны сделать специальные вещи, чтобы Drupal искал в каталоге вашего модуля переопределение шаблона. По умолчанию он смотрит только на активную тему.
leymannx avatar
флаг ne
Отвечает ли это на ваш вопрос? [Переопределить шаблон темы из модуля без реализации темы](https://drupal.stackexchange.com/questions/200602/override-theme-template-from-module-without-implementing-a-theme)
флаг cn
@leymannx спасибо за это. Это то же самое решение, но другой способ решения проблемы, у меня есть и пользовательская тема, и модуль. Я проголосовал за ответ Сэма на этот вопрос, но у меня нет представителя, чтобы отметить его принятым.
Рейтинг:0
флаг es
Sam

Использовать шаблон из модуля

Вы должны указать шаблон в крючок_тема() с правильным базовым крючком.

Вот пример для хука «узел»:

функция MY_MODULE_theme ($ существующая, $ тип, $ тема, $ путь) {
  возвращаться [
    'node__custom-type__full' => [
      'template' => 'node--custom-type--full',
      'базовый крючок' => 'узел',
      'путь' => drupal_get_path('модуль', 'МОЙ_МОДУЛЬ') . '/templates/content', // если пользовательский
    ],
  ];
}

Другое решение: создать новое предложение

Вы можете сделать это в theme_suggestions_alter()

Проверять theme_suggestion_alter

Вот пример, это решение создать предложение шаблона для формы с идентификатором формы :

функция MY_THEME_theme_suggestions_alter ($ существующая, $ тип, $ тема, $ путь) {
  if ($hook === 'form' && !empty($variables['element']['#id'])) {
    $suggestions[] = 'form__' . str_replace('-', '_', $variables['element']['#id']);
  }
}

(Создайте для меня форму--пользователь-логин-форма.html.ветка)

В вашем случае замените $ крючок к HTML и добавить id пользователя

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.