# 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 1. Copie o módulo para `modules/custom/site_users` 2. Ative o módulo via Drush ou interface administrativa: ```bash 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: 1. Acesse **Estrutura > Layout de blocos** 2. Adicione o bloco "Informações do Usuário" na região desejada 3. 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ário - `user--full.html.twig` - Página completa do usuário ### Variáveis disponíveis no bloco ```twig {{ 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 ```php $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.