Quintino A. G. Souza d72f41de97 Adiciona sub-módulo site_users_blog e melhora negociador de tema
Sub-módulo site_users_blog:
- Tipo de conteúdo blog_post (título, corpo, imagem, assuntos)
- Vocabulário blog_tags para categorias
- Listagem em /user/{uid}/blog via Views com filtro contextual por autor
- Padrão Pathauto: user/[node:author:uid]/blog/[node:title]
- hook_node_presave: preenche field_site_section com o autor
- hook_node_access: restringe criação às roles configuradas
- hook_preprocess_structural_pages_menu: injeta item "Blog" quando
  usuário tem posts publicados
- Plugin BlogUserHandler: resolve usuário ancestral para rotas de blog
  (post individual e listagem Views)
- Link "Post de blog" no menu "Adicionar" da conta
- Página de configuração de roles permitidas
- Update 10001: adiciona field_site_section a posts existentes

MicrositeThemeNegotiator:
- Injeta path.current para cobrir rotas sem parâmetro 'user' (ex.: Views)
- Qualquer path /user/{uid}/... recebe o tema do microsite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 07:32:10 -03:00

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:
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

{{ 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}/content listando 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.

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 theme em site_users_microsite_theme.info.yml está definido como stable9 (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.twig define 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.

Description
No description provided
Readme 252 KiB
Languages
PHP 71.5%
CSS 17.5%
Twig 10%
JavaScript 1%