mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_tools.git
synced 2026-03-08 01:17:42 -03:00
master
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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-modulespara 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
- Coloque o módulo no diretório
modules/custom/ - Ative o módulo via Drush:
drush en site_tools - Limpe o cache:
drush cr
Uso
Outros módulos podem usar a seção "Local Modules" adicionando em seus arquivos .links.menu.yml:
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:
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
- Acesse
/admin/structure/block - Posicione o bloco "Share Links" na região desejada
Fornecendo Links
Implemente hook_site_tools_share_links() no seu módulo:
/**
* 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:
/**
* 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 para documentação detalhada incluindo:
- Exemplos de integração com AddToAny
- Personalização do template Twig
- Classes CSS disponíveis
- Gerenciamento de cache
Description
Languages
PHP
69.5%
CSS
18%
Twig
12.5%