Permite usar título do nó homepage como título da página do microsite

Adiciona checkbox 'use_homepage_title' ao formulário de configuração do
microsite. Quando ativado, o hook_preprocess_block substitui o título do
bloco 'Título da Página' pelo título do nó configurado como homepage.
Sem nó configurado ou no caso de fallback, mantém o nome do usuário.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 08:32:37 -03:00
parent a500d9ec09
commit 7b747e4eb2
2 changed files with 59 additions and 0 deletions

View File

@@ -65,6 +65,50 @@ function _site_users_microsite_remove_homepage_from_tree(array &$items, int $hom
}
}
/**
* Implements hook_preprocess_block().
*
* Substitui o título do bloco "Título da Página" pelo título do nó homepage
* quando o usuário tiver ativado essa opção nas configurações do microsite.
* Sem nó homepage configurado (ou no fallback), mantém o comportamento padrão.
*/
function site_users_microsite_preprocess_block(&$variables): void {
if ($variables['plugin_id'] !== 'page_title_block') {
return;
}
$route_match = \Drupal::routeMatch();
$route_name = $route_match->getRouteName();
$is_microsite = $route_name === 'entity.user.canonical'
|| str_starts_with($route_name, 'site_users_microsite.');
if (!$is_microsite) {
return;
}
$user = $route_match->getParameter('user');
if (!($user instanceof UserInterface)) {
return;
}
$userData = \Drupal::service('user.data');
if (!$userData->get('site_users_microsite', $user->id(), 'use_homepage_title')) {
return;
}
$homepage_nid = $userData->get('site_users_microsite', $user->id(), 'homepage_nid');
if (!$homepage_nid) {
return;
}
$node = \Drupal::entityTypeManager()->getStorage('node')->load($homepage_nid);
if ($node && $node->isPublished() && $node->access('view')) {
$variables['content']['#title'] = $node->label();
}
}
/**
* Implements hook_preprocess_page().
*