Implement ParentEntityHandler plugin system for extensible entity support

Replace hardcoded entity type checks with a plugin-based architecture using
PHP 8 attributes. This allows adding new parent entity types without modifying
core module files.

Changes:
- Add ParentEntityHandler attribute, interface, base class, and manager
- Create built-in handlers for taxonomy_term, user, and node entities
- Move Group support to site_structure_group submodule (fixes class not found
  error when Group module is not installed)
- Refactor SiteStructureSettingsForm to use handler manager
- Refactor SiteStructureMenuBlock to use handler manager
- Refactor SectionBreadcrumbBuilder to use handler manager
- Update site_structure.module to use handler manager for clearsSiteSection
- Update documentation and translations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-04 08:35:04 -03:00
parent 43fa9208a9
commit 0c8f0fc778
17 changed files with 1153 additions and 117 deletions

View File

@@ -336,3 +336,31 @@ msgstr "Expandir automaticamente os itens de menu na trilha ativa."
#: templates/site-structure-menu.html.twig
msgid "Site structure navigation"
msgstr "Navegação da estrutura do site"
#: src/Plugin/ParentEntityHandler/TaxonomyTermHandler.php
#: src/Form/SiteStructureSettingsForm.php
msgid "Taxonomy Vocabularies (taxonomy_term)"
msgstr "Vocabulários de Taxonomia (taxonomy_term)"
#: src/Plugin/ParentEntityHandler/UserHandler.php
#: src/Form/SiteStructureSettingsForm.php
msgid "Users (user)"
msgstr "Usuários (user)"
#: src/Plugin/ParentEntityHandler/NodeHandler.php
#: src/Form/SiteStructureSettingsForm.php
msgid "Content Types (node)"
msgstr "Tipos de Conteúdo (node)"
#: modules/site_structure_group/src/Plugin/ParentEntityHandler/GroupHandler.php
#: src/Form/SiteStructureSettingsForm.php
msgid "Groups (group)"
msgstr "Grupos (group)"
#: modules/site_structure_group/site_structure_group.info.yml
msgid "Site Structure Group Integration"
msgstr "Integração de Grupos do Site Structure"
#: modules/site_structure_group/site_structure_group.info.yml
msgid "Provides Group entity support as parent type for Site Structure module."
msgstr "Fornece suporte a entidades Grupo como tipo pai para o módulo Site Structure."