# 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