Переопределить page-title.html.twig для конкретного типа контента

Главные вкладки

Аватар пользователя HolySong HolySong 26 августа 2021 в 15:58

Drupal 8.7.7.

Есть отдельный тип контента,
Тип контента - Machine name: cms_page

В "cms_page" добавляю страницы, хочу чтобы для этих типов материалов использовался свой файл page-title.html.twig

До меня переопределяли темплейт для нужного УРЛ
"page--client-login.html.twig"

До меня переопределили для всех типов страниц
page-title.html.twig

Пробую вот так

но ни один способ не подходит
Пробую для Ноды, для УРЛ, для типа контента.
После изменений чищу кеш, подскажите, что делаю не так?

Комментарии

Аватар пользователя ivnish ivnish 26 августа 2021 в 16:00

Вы наугад пробуете что ли? Подходящие suggestions при включенном twig debug будут написаны в исходном коде страницы

Если нужного suggestion нет, можно написать его самому

Аватар пользователя madt madt 26 августа 2021 в 16:23

Например, так:

<?php
/**
 * Implements hook_theme_suggestions_HOOK_alter() for blocks.
 */
function HOOK_suggestions_block_alter(array &$suggestions, array $variables) {
  
$route_name = \Drupal::routeMatch()->getRouteName();
  
  if (
$variables['elements']['#base_plugin_id'] == 'page_title_block') {
    
$route_part_carry '';
    foreach (
$route_parts explode('.'$route_name) as $route_part) {
      
$route_part_carry .= '__' $route_part;
      
$suggestions[] = 'block__page_title';
      
$suggestions[] = 'block__page_title'$route_part_carry;
      
$suggestions[] = 'block__page_title__'$route_part;
    }
    
$suggestions array_values(array_unique($suggestions));
  }
}
?>
Аватар пользователя HolySong HolySong 26 августа 2021 в 16:26

madt Не совсем понял, куда вставить этот код и как именно применить его для моих типов страниц


ВОт включил отладку, подскажите как мне подключать файл для нужных мне типов страниц.

Аватар пользователя HolySong HolySong 26 августа 2021 в 16:53

field--node--title--cms-page.html.twig пробовал такое имя
Из вендорного файла вставил данные в файл, пробовал старый данные, но Тайтл перестал выводится

<?php{% if title %}
  <h1{{ title_attributes.addClass('page-header') }}>{{ title }}</h1>
{% endif %}?>
Аватар пользователя VasyOK VasyOK 26 августа 2021 в 19:28

Заголовок ноды - это блок. Блок можно скрыть. И вывести другой блок сформированный вьюхой. В которой и будет выводится заголовок с любыми тегами или еще чем-то.