mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-03-08 01:17:41 -03:00
Módulo Drupal para gerenciamento de campos e fotos de perfil de usuários: - Campos customizados: nome, telefone, categoria, departamento, biografia - Suporte a múltiplas fotos com seleção de foto padrão - Controle de permissões granular para visualização e edição - Bloco de informações do usuário para exibição em páginas - Configurações administrativas para limite de fotos e integração LDAP Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
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
}
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.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.