Adiciona sub-módulo site_users_microsite e tema site_users_microsite_theme

Sub-módulo com ThemeNegotiator, controller de listagem de conteúdo por usuário,
formulário de configuração de tipos de conteúdo por papel e serviços registrados.

Tema com regiões header, highlighted, tabs, messages, content, sidebar, social
e footer; template page.html.twig com header padrão gerado a partir dos dados
do usuário (foto, nome, roles) quando a região header estiver vazia.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 07:35:45 -03:00
parent d3c1282e47
commit d169052065
16 changed files with 727 additions and 0 deletions

123
README.md
View File

@@ -108,6 +108,109 @@ if ($photo instanceof \Drupal\media\MediaInterface) {
}
```
## 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:
```bash
drush en site_users_microsite
```
O tema `site_users_microsite_theme` também precisa ser implantado e ativado
(ver seção [Deploy do tema](#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:
```twig
{{ 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.
### Opção 1 — Symlink (recomendado em desenvolvimento)
```bash
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)
```bash
cp -r themes/site_users_microsite_theme \
/caminho/para/drupal/themes/custom/site_users_microsite_theme
```
Após implantar, ative o tema:
```bash
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
```
@@ -127,6 +230,26 @@ site_users/
├── 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