В частности, есть system-branding-block, в него мне необходимо вывести текущий заголовок странцы и, соответственно, отключить в блоке страницы. Со вторым все просто - переопределить шаблон (хотя может есть какие-то более правильные методы?)
А вот первым как быть? В собственной теме далаю такой хук:
function mytheme_preprocess_block(&$vars) {
if ($vars['plugin_id'] != 'system_branding_block') return;
#Если текущий блок не system branding ничего не делаем, иначе берем тайтл от текущей ноды.
$node = $node = \Drupal::routeMatch()->getParameter('node');
if (!$node) return;
$vars['page_title'] = $node->get('title')->getValue()[0]['value'];
}
Но выполняется оно ровно один раз, пока этот блок не будет закэширован с первым (после очистки кэша) татйлом страницы.
Вопрос: как это обойти?
На ум пока приходит избавиться от system-branding блока совсем и все его содержимое включить в шаблон рендеринга html. Но это уже совсем костыль.