mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-05-04 04:40:40 -03:00
Melhorias no microsite e sincronização de fotos LDAP
Fotos LDAP:
- Ignora sync quando conta ainda não tem UID (evitava URI compartilhada)
- Filtra fotos abaixo do tamanho mínimo configurável (padrão 10 KB)
- Adiciona campo ldap_min_photo_size nas configurações e schema
- Update 10010: remove fotos placeholder já existentes
- Update 10011: remove mídias com URI ldap_photo_.{ext} sem UID
Bloco de cabeçalho do microsite:
- Exibe departamento abaixo do nome, sem label, com link para a entidade
- Exibe telefone de trabalho (work_phone) no lugar de phone (restrito)
Página de perfil:
- Título fixo "Perfil de @name" via callback profileTitle()
- Exclui rota profile da substituição de título pelo nó homepage
Subpáginas com URL amigável:
- Adiciona MicrositeSubpagePathProcessor (inbound + outbound)
- Inbound: /user/{username}/{subpage} → /user/{uid}/{subpage}
- Outbound: /user/{uid}/{subpage} → /user/{username}/{subpage}
- Busca alias em todos os idiomas para contornar limitação do AliasManager
Tema do microsite em rotas externas:
- MicrositeThemeNegotiator cobre rotas com parâmetro user sob /user/{user}/
- Cobre nós do structural_pages cujo alias começa com /user/{uid}/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,12 +18,14 @@ function site_users_microsite_theme(): array {
|
||||
'photo_alt' => '',
|
||||
'name' => NULL,
|
||||
'bio' => NULL,
|
||||
'phone' => NULL,
|
||||
'email' => NULL,
|
||||
'homepage' => NULL,
|
||||
'lattes_id' => NULL,
|
||||
'orcid_id' => NULL,
|
||||
'mathscinet_id' => NULL,
|
||||
'department' => NULL,
|
||||
'department_url' => NULL,
|
||||
'work_phone' => NULL,
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -78,12 +80,19 @@ function site_users_microsite_preprocess_block(&$variables): void {
|
||||
}
|
||||
|
||||
$route_match = \Drupal::routeMatch();
|
||||
$route_name = $route_match->getRouteName();
|
||||
$route_name = $route_match->getRouteName() ?? '';
|
||||
|
||||
// Rotas com título próprio não devem ser sobrescritas.
|
||||
$excluded = [
|
||||
'site_users_microsite.profile',
|
||||
'site_users_microsite.settings',
|
||||
'site_users_microsite.user_config',
|
||||
];
|
||||
|
||||
$is_microsite = $route_name === 'entity.user.canonical'
|
||||
|| str_starts_with($route_name, 'site_users_microsite.');
|
||||
|
||||
if (!$is_microsite) {
|
||||
if (!$is_microsite || in_array($route_name, $excluded)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user