Adiciona campo field_user_homepage e ícone de página pessoal no bloco

- Novo campo link field_user_homepage (página pessoal do usuário)
- Update hook 10009 para instalações existentes
- MicrositeHeaderBlock: variável #homepage via getFieldUri()
- Template: link com ícone 'home' como primeiro item nos links acadêmicos
- CSS: fill para ícone de casinha no fundo escuro do header

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 10:53:13 -03:00
parent 9ec7f951bf
commit 3257c89ff7
8 changed files with 137 additions and 1 deletions

View File

@@ -548,6 +548,72 @@ function site_users_update_10008() {
return t('MathSciNet ID field created successfully.');
}
/**
* Cria o campo field_user_homepage para página pessoal do usuário.
*/
function site_users_update_10009() {
if (!FieldStorageConfig::loadByName('user', 'field_user_homepage')) {
FieldStorageConfig::create([
'field_name' => 'field_user_homepage',
'entity_type' => 'user',
'type' => 'link',
'settings' => [
'title' => 0,
'link_type' => 16,
],
'cardinality' => 1,
'translatable' => TRUE,
])->save();
}
if (!FieldConfig::loadByName('user', 'user', 'field_user_homepage')) {
FieldConfig::create([
'field_name' => 'field_user_homepage',
'entity_type' => 'user',
'bundle' => 'user',
'label' => 'Personal homepage',
'description' => 'URL of the user personal homepage.',
'required' => FALSE,
'settings' => [
'title' => 0,
'link_type' => 16,
],
])->save();
}
$form_display = EntityFormDisplay::load('user.user.default');
if ($form_display && !$form_display->getComponent('field_user_homepage')) {
$form_display->setComponent('field_user_homepage', [
'type' => 'link_default',
'weight' => 12,
'settings' => [
'placeholder_url' => 'https://',
'placeholder_title' => '',
],
'region' => 'content',
])->save();
}
$view_display = EntityViewDisplay::load('user.user.default');
if ($view_display && !$view_display->getComponent('field_user_homepage')) {
$view_display->setComponent('field_user_homepage', [
'type' => 'link',
'weight' => 12,
'label' => 'above',
'settings' => [
'trim_length' => 80,
'url_only' => FALSE,
'url_plain' => FALSE,
'rel' => 'noopener noreferrer',
'target' => '_blank',
],
'region' => 'content',
])->save();
}
return t('Campo field_user_homepage criado com sucesso.');
}
/**
* Corrige mapeamentos LDAP com campos de string nulos na config ativa.
*/