- 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>
Site Users
Módulo Drupal para customização de perfis de usuário, incluindo campos adicionais e gerenciamento de fotos.
Funcionalidades
-
Campos de perfil customizados:
- Nome completo
- Telefone
- Categoria
- Código do departamento
- Biografia
-
Gerenciamento de fotos:
- Suporte a múltiplas fotos por usuário
- Seleção de foto padrão
- Limite configurável de quantidade de fotos
- Integração com Media Library
-
Controle de permissões granular:
- Visualizar/editar campos do próprio perfil
- Visualizar/editar campos de qualquer usuário
- Gerenciar fotos próprias ou de outros usuários
-
Bloco de informações:
- Exibe dados do usuário em páginas de perfil
- Template customizável via Twig
Requisitos
- Drupal 10 ou 11
- Módulos core: User, Telephone, Text, Media, Media Library
Instalação
- Copie o módulo para
modules/custom/site_users - Ative o módulo via Drush ou interface administrativa:
drush en site_users
Configuração
Acesse as configurações em: Administração > Configuração > Módulos Locais > Site Users
/admin/config/local-modules/site-users
Opções disponíveis
| Configuração | Descrição | Padrão |
|---|---|---|
| Quantidade de fotos | Número máximo de fotos por usuário | 5 |
| Atributo LDAP | Nome do atributo LDAP para foto (se aplicável) | jpegPhoto |
Permissões
| Permissão | Descrição |
|---|---|
administer site_users settings |
Administrar configurações do módulo |
view own user profile fields |
Visualizar campos do próprio perfil |
view any user profile fields |
Visualizar campos de qualquer usuário |
edit own user profile fields |
Editar campos do próprio perfil |
edit any user profile fields |
Editar campos de qualquer usuário |
manage own user photos |
Gerenciar próprias fotos |
manage user photos |
Gerenciar fotos de qualquer usuário |
Uso do Bloco
O módulo fornece o bloco "Informações do Usuário" que pode ser posicionado em regiões do tema para exibir informações do perfil nas páginas /user/{id}.
Para adicionar o bloco:
- Acesse Estrutura > Layout de blocos
- Adicione o bloco "Informações do Usuário" na região desejada
- Configure a visibilidade para páginas de usuário
Customização de Templates
Os templates podem ser sobrescritos no tema:
site-user-info-block.html.twig- Bloco de informações do usuáriouser--full.html.twig- Página completa do usuário
Variáveis disponíveis no bloco
{{ user_info.uid }} {# ID do usuário #}
{{ user_info.username }} {# Nome de exibição #}
{{ user_info.name }} {# Nome completo #}
{{ user_info.phone }} {# Telefone #}
{{ user_info.category }} {# Categoria #}
{{ user_info.dept_code }} {# Código do departamento #}
{{ user_info.bio }} {# Biografia #}
{{ user_info.photo_url }} {# URL da foto padrão #}
{{ user_info.photo_alt }} {# Texto alternativo da foto #}
{{ user }} {# Entidade completa do usuário #}
API
Obter foto padrão de um usuário
$photo = site_users_get_default_photo($user);
if ($photo instanceof \Drupal\media\MediaInterface) {
// Usar a foto
}
Sub-módulo: Site Users Microsite
O sub-módulo site_users_microsite provê micro-sites pessoais para cada usuário,
acessíveis em /user/{id}, com tema próprio e sem a navegação principal do site.
Funcionalidades
- Tema alternativo aplicado automaticamente em todas as rotas
/user/{id}e/user/{id}/content - Página
/user/{id}/contentlistando o conteúdo publicado pelo usuário - Configuração de quais tipos de conteúdo cada papel pode publicar no micro-site
- Aba "Content" adicionada às páginas de perfil de usuário
Instalação
O sub-módulo está neste repositório mas é ativado independentemente:
drush en site_users_microsite
O tema site_users_microsite_theme também precisa ser implantado e ativado
(ver seção Deploy do tema abaixo).
Configuração
Acesse as configurações em: Administração > Configuração > Módulos Locais > Site Users > User Microsite
/admin/config/local-modules/site-users/microsite
Configure quais tipos de conteúdo cada papel pode publicar no micro-site.
Layout de blocos
No tema site_users_microsite_theme, configure os blocos em
Estrutura > Layout de blocos:
| Bloco | Região sugerida |
|---|---|
| Informações do Usuário (ou bloco customizado) | Microsite Header |
| Primary tabs | Tabs |
| Status messages | Messages |
| Main page content | Content |
Permissões
| Permissão | Descrição |
|---|---|
administer site_users_microsite settings |
Configurar tipos de conteúdo por papel |
Variáveis disponíveis no tema
O módulo injeta as seguintes variáveis em page.html.twig quando em rotas do micro-site:
{{ microsite_user }} {# entidade UserInterface do dono do micro-site #}
{{ microsite_user_name }} {# nome de exibição (string) #}
{{ microsite_user_roles }} {# array de roles (exceto 'authenticated') #}
{{ microsite_user_photo }} {# render array da foto padrão (view mode 'thumbnail') #}
Deploy do tema
O tema site_users_microsite_theme está versionado neste repositório em
themes/site_users_microsite_theme/, mas o Drupal só descobre temas em
themes/custom/. É necessário implantá-lo manualmente no servidor.
Opção 1 — Symlink (recomendado em desenvolvimento)
ln -s /caminho/para/site_users/themes/site_users_microsite_theme \
/caminho/para/drupal/themes/custom/site_users_microsite_theme
Opção 2 — Cópia (recomendado em produção)
cp -r themes/site_users_microsite_theme \
/caminho/para/drupal/themes/custom/site_users_microsite_theme
Após implantar, ative o tema:
drush theme:enable site_users_microsite_theme
O tema não precisa ser definido como tema padrão do site — o módulo
site_users_microsite o aplica automaticamente via ThemeNegotiator apenas
nas rotas de micro-site.
Personalização do tema
base themeemsite_users_microsite_theme.info.ymlestá definido comostable9(tema base mínimo do core, sem estilos próprios). Altere para o tema principal do site se quiser herdar fontes e variáveis CSS.- O template
templates/layout/page.html.twigdefine o layout completo da página. - O CSS base está em
css/microsite.css.
Estrutura do Módulo
site_users/
├── config/
│ ├── install/
│ │ └── site_users.settings.yml
│ └── optional/
│ └── field.*.yml
├── css/
│ └── site-user-info-block.css
├── src/
│ ├── Form/
│ │ └── SiteUsersSettingsForm.php
│ └── Plugin/Block/
│ └── UserInfoBlock.php
├── templates/
│ ├── site-user-info-block.html.twig
│ └── user--full.html.twig
├── site_users_microsite/ ← sub-módulo
│ ├── config/install/
│ │ └── site_users_microsite.settings.yml
│ ├── src/
│ │ ├── Controller/MicrositeContentController.php
│ │ ├── Form/MicrositeSettingsForm.php
│ │ └── Theme/MicrositeThemeNegotiator.php
│ ├── site_users_microsite.info.yml
│ ├── site_users_microsite.links.menu.yml
│ ├── site_users_microsite.links.task.yml
│ ├── site_users_microsite.module
│ ├── site_users_microsite.permissions.yml
│ ├── site_users_microsite.routing.yml
│ └── site_users_microsite.services.yml
├── themes/
│ └── site_users_microsite_theme/ ← tema (deploy em themes/custom/)
│ ├── css/microsite.css
│ ├── templates/layout/page.html.twig
│ ├── site_users_microsite_theme.info.yml
│ └── site_users_microsite_theme.libraries.yml
├── site_users.info.yml
├── site_users.install
├── site_users.libraries.yml
├── site_users.links.menu.yml
├── site_users.module
├── site_users.permissions.yml
└── site_users.routing.yml
Licença
Este módulo é software livre distribuído sob a licença GPL-2.0-or-later.