Commit Graph

16 Commits

Author SHA1 Message Date
0403eaf008 Define package 'Site Users' em todos os submódulos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 07:56:23 -03:00
ef3fe2ab30 Adiciona composer.json aos sub-módulos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 09:36:11 -03:00
d72f41de97 Adiciona sub-módulo site_users_blog e melhora negociador de tema
Sub-módulo site_users_blog:
- Tipo de conteúdo blog_post (título, corpo, imagem, assuntos)
- Vocabulário blog_tags para categorias
- Listagem em /user/{uid}/blog via Views com filtro contextual por autor
- Padrão Pathauto: user/[node:author:uid]/blog/[node:title]
- hook_node_presave: preenche field_site_section com o autor
- hook_node_access: restringe criação às roles configuradas
- hook_preprocess_structural_pages_menu: injeta item "Blog" quando
  usuário tem posts publicados
- Plugin BlogUserHandler: resolve usuário ancestral para rotas de blog
  (post individual e listagem Views)
- Link "Post de blog" no menu "Adicionar" da conta
- Página de configuração de roles permitidas
- Update 10001: adiciona field_site_section a posts existentes

MicrositeThemeNegotiator:
- Injeta path.current para cobrir rotas sem parâmetro 'user' (ex.: Views)
- Qualquer path /user/{uid}/... recebe o tema do microsite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 07:32:10 -03:00
39de6a7493 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>
2026-03-23 15:29:40 -03:00
aa24bf79f8 Corrige detecção do tema microsite e adiciona padrão Pathauto para usuários
- MicrositeThemeNegotiator: substitui verificação por regex no alias (que
  quebrava com aliases não-numéricos como /user/brunof) por verificação
  direta do nome da rota
- Adiciona config/optional/pathauto.pattern.user_site_mapping.yml para
  criar automaticamente o padrão de alias user/[user:name] na instalação
  do módulo, quando o Pathauto estiver habilitado

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:48:19 -03:00
ca9b8e8d53 Adiciona sub-módulo site_users_user_content
Registra o handler de entidade User para o módulo Structural Pages,
permitindo que nós content_page usem um usuário como entidade pai e
viabilizando a hierarquia de páginas do microsite (/user/{id}/...).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 08:55:35 -03:00
7b747e4eb2 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>
2026-03-22 08:32:37 -03:00
18a7aa81cb Estiliza formulário de configuração do microsite
Adiciona biblioteca CSS 'form' ao tema do microsite com estilos para
labels, campos, descrições e botão de submit, seguindo a paleta de cores
do tema. O formulário aplica a classe .microsite-form e anexa a biblioteca
automaticamente.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 10:21:57 -03:00
85bc63b250 Adiciona página de configuração do microsite em /user/{id}/config
Permite ao usuário selecionar qual conteúdo (content_page toplevel) é
exibido na página inicial do microsite. A configuração é armazenada via
user.data e a homepage respeita a escolha com fallback para o primeiro nó
publicado. O nó configurado como homepage é ocultado automaticamente do
menu de navegação (structural_pages). Inclui link "Configuração" no menu
da conta via rota de redirecionamento para o usuário atual.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 09:55:56 -03:00
f4d6c49312 Estende tema do microsite para todas as rotas /user/{id}/...
O negociador de tema passa a verificar o alias do caminho atual em vez
de checar nomes de rota específicos, cobrindo páginas de qualquer módulo
acessadas via alias /user/{id}/.... Adiciona site_users_get_microsite_user()
como helper reutilizável para obter o usuário do microsite a partir da rota
ou do alias, e atualiza MicrositeHeaderBlock e site_tools_share_links para
usá-lo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 09:17:51 -03:00
0ce327026d Adiciona atributo title nos links acadêmicos do MicrositeHeaderBlock
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 11:26:11 -03:00
03857ee1f2 Sobrescreve rota canônica do usuário com micro-site e move perfil para /user/{id}/profile
- RouteSubscriber redireciona entity.user.canonical ao MicrositeHomeController
- Nova rota site_users_microsite.profile em /user/{user}/profile com _entity_access
- Corrige configFactory() → config() no MicrositeContentController
- Exclui rota de settings do tema do micro-site no ThemeNegotiator
- Adiciona local task tabs para settings (módulo pai e submódulo)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 11:26:06 -03:00
3257c89ff7 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>
2026-03-17 10:53:13 -03:00
9ec7f951bf Adiciona links acadêmicos ao MicrositeHeaderBlock e formatadores de campo
- 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>
2026-03-17 08:52:28 -03:00
84f4661798 Adiciona bloco MicrositeHeaderBlock e regiões ao tema do microsite
- Novo bloco MicrositeHeaderBlock (site_users_microsite): exibe foto
  circular (220×280px), nome (h1), biografia e contatos (telefone,
  e-mail). Título oculto por padrão; biografia renderizada via
  ->processed com |raw no template.
- Remove UserInfoBlock e seu template (não estava em uso).
- Adiciona regiões Top Bar e Navigation ao tema; menu.html.twig para
  gerar classes .menu__item/.menu__link compatíveis com o CSS.
- CSS: estilos das novas regiões e do bloco de cabeçalho.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 07:12:55 -03:00
d169052065 Adiciona sub-módulo site_users_microsite e tema site_users_microsite_theme
Sub-módulo com ThemeNegotiator, controller de listagem de conteúdo por usuário,
formulário de configuração de tipos de conteúdo por papel e serviços registrados.

Tema com regiões header, highlighted, tabs, messages, content, sidebar, social
e footer; template page.html.twig com header padrão gerado a partir dos dados
do usuário (foto, nome, roles) quando a região header estiver vazia.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 07:35:45 -03:00