mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-03-10 10:17:41 -03:00
feat: Módulo Site Users para customização de perfis de usuário
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>
This commit is contained in:
141
README.md
Normal file
141
README.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user