extend_help_maintainers
No security coverage
Description
Extends module Help pages by automatically displaying maintainers information from multiple sources. The module uses a plugin-based architecture that allows maintainers to be fetched from different providers (module .info.yml files, Drupal.org, or custom sources) and merged deterministically based on configurable priorities.
Helps users quickly identify who maintains a module directly from the Help page, with support for avatars, names, and links to maintainer profiles.
Features
- Plugin-based architecture - Extensible system for fetching maintainers from multiple sources
- Multiple data sources:
- Info YAML Fetcher - Reads maintainers from module
.info.ymlfiles (highest priority) - Drupal.org Fetcher - Scrapes maintainers from Drupal.org project pages
- Custom fetchers can be added via plugin system
- Info YAML Fetcher - Reads maintainers from module
- Priority-based merge strategy - Configurable priorities determine which source takes precedence when merging duplicate maintainers
- Automatic integration - Seamlessly adds maintainers block to help pages via
hook_help_alter()without modifying original module code - Configuration UI - Admin form at
/admin/config/system/extend-help-maintainersto:- Enable or disable specific fetcher plugins
- Configure custom priorities for each source
- Visual display:
- Maintainer avatars with fallback placeholder
- Names and links to Drupal.org profiles
- Responsive, themed output
- Performance:
- Caching support (24 hours default)
- Proper cache metadata for invalidation
- Efficient plugin discovery and instantiation
- Developer-friendly:
- Full test coverage (Unit + Kernel tests)
- Clean architecture following SOLID principles
- Comprehensive documentation
Use cases:
- Module developers and site builders can quickly identify maintainers for support
- Provides a visual summary of maintainers in admin interface Help pages
- Useful for organizations managing multiple contributed modules
- Helps maintainers showcase their contributions
Post-Installation
- Install and enable the module via Extend (/admin/modules) or Drush:
drush en extend_help_maintainers - (Optional) Configure at
/admin/config/system/extend-help-maintainers:- Select which fetcher plugins to use
- Adjust priorities for different sources
- Any module with maintainers defined will automatically display a Maintainers block on its Help page
- Maintainers can be defined in:
- Module's
.info.ymlfile underextra.extend_help_maintainers.maintainers - Automatically fetched from Drupal.org project page (if enabled)
- Module's
- Avatars will display if provided; otherwise, a placeholder image is shown
Example .info.yml configuration:
extra: extend_help_maintainers: maintainers: - name: John Doe drupal_org: johndoe avatar: https://www.drupal.org/files/styles/grid-2-2x-square/public/user-pictures/picture-123.jpg
Additional Requirements
- No additional libraries or external dependencies required
- Works with Drupal 10+ and 11+
- PHP 8.1+
Recommended modules/libraries
- None required. The module works standalone.
- Modules that enhance Help pages or module documentation may complement it.
Similar projects
- This module is universal and works for any Drupal module
- Enhances Help pages without modifying the original module code
- Uses a plugin-based architecture for extensibility
- Supports multiple data sources with priority-based merging
- Unlike simple solutions, provides a complete subsystem with testing, documentation, and configuration
Supporting this Module
- Report issues and feature requests on the project issue queue
- Contribute patches following Drupal coding standards
- Review and test the module
- Share feedback and use cases
Community Documentation
- See
README.mdfor comprehensive documentation - Architecture diagram available in
docs/architecture.puml - Full test suite demonstrates usage patterns
- Code follows Drupal core quality standards
Technical Details
- Architecture: Plugin-based, service-oriented design
- Testing: Unit tests for DTO and merge logic, Kernel tests for integration
- Security: Input validation, XSS prevention, URL sanitization
- Standards: PSR-12 and Drupal Coding Standards compliant
- License: GPL-2.0-or-later