# Template System Refactor Plan ## Current Issues 1. **Master Dashboard Bug**: The master dashboard page (ID: 5505) is showing trainer dashboard content instead of master dashboard content 2. **Competing Systems**: Both page templates and shortcodes are trying to render the same content 3. **Complex Routing**: Multiple redirect systems and rewrite rules causing confusion 4. **CSS Loading Issues**: Styles not consistently applied to logged-in pages 5. **Debug Code**: Production code contains debug statements ## Root Cause Analysis The plugin uses two competing systems: - **Page Templates**: Custom PHP templates that override theme templates - **Shortcodes**: WordPress shortcodes that render content within pages When a page has both a custom template AND a shortcode, conflicts arise. The master dashboard page has: - Page template: `page-master-dashboard.php` - Page content: `[hvac_master_dashboard]` - But somehow the trainer dashboard content is being rendered ## Recommended Solution: Shortcode-Only Architecture ### Phase 1: Remove Template System (Immediate Fix) 1. **Update class-hvac-community-events.php**: - Remove `load_custom_templates()` method - Remove `add_filter('template_include', ...)` hook - Keep all shortcode registrations 2. **Update class-hvac-page-manager.php**: - Change all page definitions to use 'default' template - Ensure content includes appropriate shortcode 3. **Delete template files**: - Remove all `page-*.php` files from templates/ - Keep `template-*.php` files as they're view partials 4. **Remove class-hvac-template-loader.php**: - This entire class becomes unnecessary ### Phase 2: Clean Up Authentication (Immediate) 1. **Consolidate authentication in shortcodes**: - Each shortcode callback handles its own authentication - Remove redundant `template_redirect` authentication hooks - Keep access control for non-page routes only 2. **Standardize authentication pattern**: ```php public function render_[feature]($atts = array()) { if (!is_user_logged_in()) { return '

Please log in to view this content.

'; } if (!current_user_can('required_capability')) { return '
Access denied.
'; } // Render content } ``` ### Phase 3: Fix CSS Loading (Next Priority) 1. **Remove conditional CSS loading**: - Enqueue base styles globally for consistency - Use CSS classes to show/hide elements rather than conditional loading 2. **Consolidate CSS files**: - Merge `hvac-harmonized.css` and `hvac-common.css` - Remove duplicate style definitions ### Phase 4: Clean Up Routing (Lower Priority) 1. **Simplify rewrite rules**: - Remove complex regex patterns - Use WordPress's built-in page hierarchy - Keep only essential redirects for backwards compatibility 2. **Update legacy redirects**: - Move from PHP redirects to .htaccess/nginx rules - Document all redirects for future removal ### Phase 5: Remove Debug Code (Final) 1. **Remove all debug statements**: - `error_log()` calls - HTML comments with DEBUG - Console.log statements in JS 2. **Add proper logging system**: - Use the existing HVAC_Logger class consistently - Add environment-based logging levels ## Implementation Order 1. **Fix Master Dashboard (Today)**: - Disable template loading for master dashboard page - Ensure shortcode renders correct content - Test with all user roles 2. **Refactor Templates (This Week)**: - Implement Phase 1 completely - Update all existing pages - Run comprehensive tests 3. **Clean Up (Next Week)**: - Implement Phases 2-5 - Remove deprecated code - Update documentation ## Testing Plan 1. **Functional Tests**: - Login as each user role - Verify all dashboards show correct content - Test all CRUD operations - Verify email notifications 2. **Visual Tests**: - Check CSS loads on all pages - Verify responsive design - Test in multiple browsers 3. **Performance Tests**: - Measure page load times - Check database query count - Verify caching works correctly ## Rollback Plan 1. Keep backup of current code 2. Document all database changes 3. Test rollback procedure on staging 4. Have quick revert script ready ## Success Metrics - Master dashboard shows correct content for master trainers - No template-related errors in logs - Page load time improves by 20% - Code complexity reduced by 30% - All existing functionality preserved ## Timeline - Day 1: Fix master dashboard bug - Day 2-3: Remove template system - Day 4-5: Clean up authentication and CSS - Week 2: Complete remaining phases - Week 3: Documentation and training ## Notes - This refactor aligns with WordPress best practices - Reduces maintenance burden significantly - Makes future features easier to implement - Improves theme compatibility