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>
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>
- 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>
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>
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>
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>
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>
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>
- 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>
- 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>
- 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>
- 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>
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>