howard / howard_sidebar_menu_block
This module is designed to provide an interior page sidebar menu for Howard University
Installs: 172
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:drupal-module
README
A sophisticated sidebar navigation module for Howard University's Drupal sites that provides intelligent, context-aware menu navigation based on the current page's position in the site hierarchy.
โจ Features
- ๐ฏ Context-Aware Navigation: Automatically determines current page position and displays relevant submenu items
- โก Performance Optimized: Efficient menu tree manipulation with intelligent caching
- ๐จ Flexible Theming: Custom Twig templates with complete design control
- โฟ Accessibility Compliant: WCAG guidelines support with proper ARIA labels
- ๐ฑ Responsive Design: Mobile-friendly navigation with responsive breakpoints
- ๐ Security Focused: Proper access control and XSS prevention
๐ Quick Start
Installation
Composer (Recommended):
composer require howard/howard_sidebar_menu_block drush en howard_sidebar_menu_block
Manual Installation:
- Download from GitHub releases
- Extract to
modules/contrib/howard_sidebar_menu_block
- Enable:
drush en howard_sidebar_menu_block
Basic Setup
- Enable the module: Admin โ Extend โ Howard Sidebar Menu Block
- Place the block: Admin โ Structure โ Block layout โ Place "Howard Sidebar Menu Block"
- Configure: Choose your sidebar region and configure visibility settings
๐ Requirements
- Drupal: 10.0+ or 11.0+
- PHP: 8.1+
- Dependencies: Block (Core), Menu (Core)
๐ง How It Works
The module intelligently analyzes your current page's position in the main menu hierarchy:
- Detects Current Position: Determines where you are in the menu structure
- Finds Parent Context: Identifies the parent menu item for contextual navigation
- Builds Relevant Tree: Constructs a menu tree showing siblings and children
- Renders Contextually: Displays only relevant navigation options
Example Behavior
Main Menu: On "About โ History" page, sidebar shows:
โโโ Home โโโ History โ (current page)
โโโ About โโโ Leadership
โ โโโ History โโโ Mission
โ โโโ Leadership โโโ Contact
โ โโโ Mission
โโโ Programs
โโโ Contact
๐ Documentation
Comprehensive documentation is available in the docs/
folder:
- ๐ Documentation Index - Overview of all documentation
- ๐ ๏ธ Installation Guide - Detailed setup instructions
- โ๏ธ API Documentation - Technical specifications for developers
- ๐ฉโ๐ป Developer Guide - Customization and development
- ๐ Changelog - Version history and release notes
- ๐ Coding Standards - Code quality guidelines
- ๐ Release Checklist - Release management
๐จ Customization
Template Override
Copy templates to your theme for customization:
cp modules/contrib/howard_sidebar_menu_block/templates/* themes/your_theme/templates/
CSS Styling
Basic styling example:
.sidebar-menu { background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 0.375rem; padding: 1rem; } .sidebar-menu .nav-link { display: block; padding: 0.5rem 0.75rem; color: #495057; text-decoration: none; } .sidebar-menu .nav-link:hover { background-color: #e9ecef; }
๐งช Testing
Run Tests
# Unit tests vendor/bin/phpunit modules/contrib/howard_sidebar_menu_block/tests/src/Unit/ # Functional tests vendor/bin/phpunit modules/contrib/howard_sidebar_menu_block/tests/src/Functional/
Manual Testing
- Create a multi-level menu structure
- Place the sidebar block in a region
- Navigate to different pages and verify contextual display
- Test with different user permissions
- Verify cache invalidation works correctly
๐ Troubleshooting
Common Issues
Block not appearing:
- Check block placement and region configuration
- Verify theme has the target region
- Clear all caches:
drush cr
Wrong menu items showing:
- Verify main menu structure
- Check menu item access permissions
- Review active trail detection
Performance issues:
- Enable page caching
- Check for large menu structures (>100 items)
- Monitor memory usage
For detailed troubleshooting, see the Installation Guide.
๐ค Contributing
We welcome contributions! Please see our Developer Guide and Coding Standards.
Development Setup
git clone https://github.com/howard-university-web-services/howard_sidebar_menu_block.git composer install drush en howard_sidebar_menu_block
Code Quality
# Check coding standards vendor/bin/phpcs --standard=Drupal,DrupalPractice src/ # Run tests vendor/bin/phpunit tests/
๐ Version Information
- Current Version: 11.0.3
- Drupal Compatibility: 10.0+ | 11.0+
- Release Date: July 7, 2025
- Next Release: View Milestone
๐ Support
- ๐ Report Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ Documentation: Project Docs
- ๐จโ๐ป Maintainer: Dan Rogers (Drupal.org)
๐ License
This project is licensed under the GPL-2.0+ License - see the LICENSE file for details.
๐๏ธ About Howard University
This module is developed and maintained by Howard University Web Services for use across Howard University's digital properties. Howard University is a leading research university providing an educational experience of exceptional value to students of high academic standing.
๐ Star this repository if you find it useful!