mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-03-09 09:57: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>
142 lines
4.0 KiB
Markdown
142 lines
4.0 KiB
Markdown
# 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.
|