# 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 '<p>Please log in to view this content.</p>';
       }
       
       if (!current_user_can('required_capability')) {
           return '<div class="hvac-error">Access denied.</div>';
       }
       
       // 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