Adiciona condição PageUserIsCurrentUser e atualiza README

- Nova condição de visibilidade de bloco (site_tools_page_owner):
  restringe exibição à situação em que o usuário logado é o dono da
  rota /user/{id}. Ativada por checkbox na UI; desativada por padrão.
- README atualizado com documentação da condição, do widget MSC 2020
  e do sub-módulo de migrate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 07:13:07 -03:00
parent 1d4d676fa6
commit 27134fce19
2 changed files with 160 additions and 0 deletions

View File

@@ -6,6 +6,12 @@ Módulo Drupal com ferramentas utilitárias reutilizáveis para outros módulos
- **Menu de configuração "Local Modules"**: Fornece uma seção centralizada em `/admin/config/local-modules` para configurações de módulos desenvolvidos internamente.
- **Bloco Share Links**: Bloco de compartilhamento em redes sociais extensível via hooks.
- **Condição de visibilidade "Usuário da página é o usuário logado"**: Restringe a exibição de qualquer bloco à situação em que o usuário autenticado é o mesmo da rota `/user/{id}`.
## Sub-módulos
- **site_tools_msc_2020**: Widget de seleção em cascata (13 níveis) para o vocabulário MSC 2020, com carregamento eficiente dos 597 termos via `loadTree()` + consulta direta ao banco.
- **site_tools_msc_2020_migrate**: Migrations para importação do vocabulário MSC 2020 a partir de CSV.
## Requisitos
@@ -98,3 +104,46 @@ Consulte [docs/share-links.md](docs/share-links.md) para documentação detalhad
- Personalização do template Twig
- Classes CSS disponíveis
- Gerenciamento de cache
## Condição de visibilidade: Usuário da página é o usuário logado
O plugin `PageUserIsCurrentUser` adiciona uma condição de visibilidade reutilizável a qualquer bloco do site.
### Configuração
1. Acesse `/admin/structure/block` e edite o bloco desejado
2. Na aba **Visibilidade**, localize a seção **"Usuário da página é o usuário logado"**
3. Marque **"Exibir apenas para o dono da página"** e salve
Quando ativada, o bloco só é exibido se o usuário autenticado tiver o mesmo ID que o parâmetro `{id}` da rota `/user/{id}`. A opção **"Negar a condição"** inverte o comportamento (exibe para todos exceto o dono).
## Sub-módulo: site_tools_msc_2020
Widget de campo (`FieldWidget`) para seleção hierárquica de termos do vocabulário **MSC 2020** (Mathematics Subject Classification), com até 3 níveis em cascata via AJAX.
### Configuração
1. Ative o sub-módulo: `drush en site_tools_msc_2020`
2. No formulário de exibição do campo (`/admin/structure/types/manage/.../form-display`), selecione o widget **"MSC 2020 — Seleção em cascata"**
3. Configure o **Nível máximo** (1, 2 ou 3) nas opções do widget
### Níveis
| Nível | Código | Exemplo |
|-------|--------|---------|
| 1 | 2 dígitos | `03` |
| 2 | 3 caracteres | `03B` |
| 3 | 5 caracteres | `03B05` |
O valor armazenado é sempre o TID do nível mais profundo selecionado. Selecionar "— área geral —" em um nível armazena o TID do nível imediatamente superior.
## Sub-módulo: site_tools_msc_2020_migrate
Migrations para importação do vocabulário MSC 2020 a partir de arquivos CSV.
### Uso
```bash
drush en site_tools_msc_2020_migrate
drush migrate:import --group=msc_2020
```