mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-05-03 14:30:41 -03:00
- Formatadores FieldFormatter para Lattes, ORCID e MathSciNet: geram link para o perfil na plataforma a partir do ID armazenado no campo - MicrositeHeaderBlock: inclui lattes_id, orcid_id e mathscinet_id - Template: exibe ícones SVG via site_tools_academic_icon() (extensão Twig do módulo site_tools) com links acessíveis para cada plataforma - CSS: estilos para .msite-header-block__academic-links com animação de hover nos ícones Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
1.5 KiB
Plaintext
65 lines
1.5 KiB
Plaintext
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Sub-módulo de micro-site pessoal de usuário.
|
|
*/
|
|
|
|
use Drupal\user\UserInterface;
|
|
|
|
/**
|
|
* Implements hook_theme().
|
|
*/
|
|
function site_users_microsite_theme(): array {
|
|
return [
|
|
'microsite_header_block' => [
|
|
'variables' => [
|
|
'photo_url' => NULL,
|
|
'photo_alt' => '',
|
|
'name' => NULL,
|
|
'bio' => NULL,
|
|
'phone' => NULL,
|
|
'email' => NULL,
|
|
'lattes_id' => NULL,
|
|
'orcid_id' => NULL,
|
|
'mathscinet_id' => NULL,
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Implements hook_preprocess_page().
|
|
*
|
|
* Disponibiliza variáveis do usuário do micro-site para o tema.
|
|
*/
|
|
function site_users_microsite_preprocess_page(array &$variables): void {
|
|
$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;
|
|
}
|
|
|
|
$variables['microsite_user'] = $user;
|
|
$variables['microsite_user_name'] = $user->getDisplayName();
|
|
$variables['microsite_user_roles'] = $user->getRoles(TRUE);
|
|
|
|
$photo = site_users_get_default_photo($user);
|
|
if ($photo) {
|
|
$render = \Drupal::entityTypeManager()
|
|
->getViewBuilder('media')
|
|
->view($photo, 'thumbnail');
|
|
$variables['microsite_user_photo'] = \Drupal::service('renderer')
|
|
->renderInIsolation($render);
|
|
}
|
|
}
|