Как вывести динамичесукю информацию в блок system-brandings?

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

Аватар пользователя dp_newbie dp_newbie 8 июня 2017 в 15:05

В частности, мне нужно вывести заголовок страницы рядом с логотипом и контактными данными и, соответственно, отключить вывод заголовка непосредственно в шаблоне самой страницы. Со вторым все просто - переопределяем шаблон и все работает (хотя, может есть более правильные способы?), а вот с первым все плохо.
Для того, чтобы получить переменную с заголовком в шаблоне, в файле темы добавляем хук:

<?php
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, Однако это уже костыль какой-то.
Так вот впорос: как такое реализовать без костылей, описаных выше?