@atom-code

Как установить отдельный шаблон, для типа материала в Drupal 8?

Всем привет.
Использую Drupal 8. Собственно вопрос к знатокам, кто сможет мне доступно объяснить, как выйти из затруднительной ситуации.
Есть тип материала, Юристы и адвокаты и есть шаблон страницы page.html.twig, который я хочу немного изменить и использовать его для типа материала Юристы и адвокаты.
Знаю, что можно использовать свой шаблон страницы для нод, путем изменения названия с page.html.twig на page--node-номер_ноды.html.twig
Да, так работает, но я же не буду под каждую страницу (ноду), создавать отдельный файл шаблона, у меня страниц с таким типом материала более 200.
Читал пару статей, но так и не понял как использовать hook_theme_suggestions_page_alter(), так как при помощи него, мою проблему можно решить.
Как мне сделать, чтобы для типа материала Юристы и адвокаты, использовался отдельный шаблон страницы? Нужно использовать шаблон именно на основе page.html.twig, а не node.html.twig.
Подскажите пожалуйста, как решить этот вопрос?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 2
andead
@andead
друпал девелопер, фрилансер
1. Добавляете suggestion для шаблона page.html.twig:

function THEMENAME_theme_suggestions_page_alter(array &$suggestions, array $variables) {
  $route_match = \Drupal::routeMatch();
  if ($route_match->getRouteName() == 'entity.node.canonical') {
    $suggestions[] = 'page__' . $route_match->getParameter('node')->bundle();
  }
}


2. Создаёте шаблон page--NODE-TYPE.html.twig

3. Сбрасываете кэш.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@atom-code Автор вопроса
Ребята всем спасибо) разобрался, очень помогли.
Если кто столкнется с такой проблемой, вот статья https://befused.com/drupal/page-template-content-type, в ней очень хорошо все объясняется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы