Как заставить все блоки в регионе использовать один и тот же шаблон

Аватар пользователя Gnome.su

Здравствуйте!
Подскажите как заставить все блоки в регионе использовать один и тот же шаблон.
В сети нашёл только этот хук:

function mytheme_theme_suggestions_block_alter(array &$suggestions, array $variables) {
  $block = Block::load($variables['elements']['#id']);
  $region = $block->getRegion();
  $suggestions[] = 'block__'.$region.'__block';
}

но он у меня не работает

The website encountered an unexpected error. Please try again later.

Тип материала:
Версия Drupal:
0 Thanks

Лучший ответ

Аватар пользователя VasyOK
VasyOK 1 месяц назад
1

А что нельзя добавить theme sugestion для всех блоков региона? Theme debug знаете как включить?

Комментарии

Аватар пользователя VasyOK
VasyOK 1 месяц назад
1

А что нельзя добавить theme sugestion для всех блоков региона? Theme debug знаете как включить?

Аватар пользователя Gnome.su
Gnome.su 1 месяц назад

А что нельзя добавить theme sugestion для всех блоков региона?

Можно по подробнее как это сделать и как использовать?

Theme debug знаете как включить?

Нет, но я погуглю)

Аватар пользователя Gnome.su
Gnome.su 1 месяц назад

Сработало!

function exoopport_theme_suggestions_block_alter(array &$suggestions, array $variables) {
  $block = entity_load('block', $variables['elements']['#id']);
        $region = $block->getRegion();
  $suggestions[] = 'block__'.$region.'__block';
}
Аватар пользователя VasyOK
VasyOK 1 месяц назад
1

Я не то имел ввиду. Просто файл шаблона для блока в папку темы закинуть.

Аватар пользователя Gnome.su
Gnome.su 1 месяц назад

Я не то имел ввиду. Просто файл шаблона для блока в папку темы закинуть.

Я так и сделал, но проблема заключается в том что шаблон блоков у меня индивидуальный, в нём прописано множество css классов и при загрузке страницы основной контент сайта так же заворачивается в блок, что не есть хорошо.
Редактировать шаблон каждого блока очень муторно, к тому же зачем? если можно использовать вышеприведённый хук.

Аватар пользователя Orion76
Orion76 1 месяц назад

Индивидуальный шаблон нужен , в основном, для индивидуальной html-разметки (конкретно индивидуальной структуры html-тегов).
Если у Вас шаблоны блоков отличаются только css-классами, то скорее всего у Вас просто "css-классификация" не оптимальна или Вы не до конца понимаете возможности css-селекторов.
Тогда нужно просто перечитать какое-нибудь руководство по css.

Если всетаки классы блоков зависят от каких-то динамических параметров, т.е. изменяются в зависимости от какого-то контекста конкретной страницы и т.п. то тут лучшее решение- препроцесс-хук
https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21...