mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_tools.git
synced 2026-03-08 01:17:42 -03:00
101 lines
2.4 KiB
Markdown
101 lines
2.4 KiB
Markdown
# Site Tools
|
|
|
|
Módulo Drupal com ferramentas utilitárias reutilizáveis para outros módulos do site.
|
|
|
|
## Funcionalidades
|
|
|
|
- **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.
|
|
|
|
## Requisitos
|
|
|
|
- Drupal 10.3+ ou 11
|
|
|
|
## Instalação
|
|
|
|
1. Coloque o módulo no diretório `modules/custom/`
|
|
2. Ative o módulo via Drush: `drush en site_tools`
|
|
3. Limpe o cache: `drush cr`
|
|
|
|
## Uso
|
|
|
|
Outros módulos podem usar a seção "Local Modules" adicionando em seus arquivos `.links.menu.yml`:
|
|
|
|
```yaml
|
|
meu_modulo.settings:
|
|
title: 'Meu Módulo'
|
|
description: 'Configurações do meu módulo'
|
|
route_name: meu_modulo.settings
|
|
parent: site_tools.admin_config
|
|
weight: 10
|
|
```
|
|
|
|
E declarando a dependência em `.info.yml`:
|
|
|
|
```yaml
|
|
dependencies:
|
|
- site_tools
|
|
```
|
|
|
|
## Bloco Share Links
|
|
|
|
O bloco **Share Links** funciona como um container que coleta e exibe links de compartilhamento fornecidos por outros módulos através de hooks.
|
|
|
|
### Configuração
|
|
|
|
1. Acesse `/admin/structure/block`
|
|
2. Posicione o bloco "Share Links" na região desejada
|
|
|
|
### Fornecendo Links
|
|
|
|
Implemente `hook_site_tools_share_links()` no seu módulo:
|
|
|
|
```php
|
|
/**
|
|
* Implements hook_site_tools_share_links().
|
|
*/
|
|
function meu_modulo_site_tools_share_links(): array {
|
|
$current_url = \Drupal::request()->getUri();
|
|
$encoded_url = urlencode($current_url);
|
|
|
|
return [
|
|
'facebook' => [
|
|
'content' => [
|
|
'#type' => 'link',
|
|
'#title' => t('Facebook'),
|
|
'#url' => \Drupal\Core\Url::fromUri(
|
|
"https://www.facebook.com/sharer/sharer.php?u={$encoded_url}"
|
|
),
|
|
'#attributes' => [
|
|
'target' => '_blank',
|
|
'rel' => 'noopener',
|
|
],
|
|
],
|
|
'weight' => 0,
|
|
'provider' => 'meu_modulo',
|
|
],
|
|
];
|
|
}
|
|
```
|
|
|
|
### Alterando Links
|
|
|
|
Use `hook_site_tools_share_links_alter()` para modificar ou remover links:
|
|
|
|
```php
|
|
/**
|
|
* Implements hook_site_tools_share_links_alter().
|
|
*/
|
|
function meu_modulo_site_tools_share_links_alter(array &$links): void {
|
|
unset($links['twitter']);
|
|
}
|
|
```
|
|
|
|
### Documentação Completa
|
|
|
|
Consulte [docs/share-links.md](docs/share-links.md) para documentação detalhada incluindo:
|
|
- Exemplos de integração com AddToAny
|
|
- Personalização do template Twig
|
|
- Classes CSS disponíveis
|
|
- Gerenciamento de cache
|