upskill-event-manager/includes/class-hvac-template-integration.php
bengizmo c4ec1818b5 fix: Implement proper WordPress standards for navigation system
Completely removed JavaScript hack approach and implemented navigation using proper WordPress standards:

 WORDPRESS BEST PRACTICES IMPLEMENTED:
- Removed JavaScript injection hacks completely
- Modified dashboard template (template-hvac-dashboard.php) directly
- Used proper PHP template integration instead of DOM manipulation
- Navigation now renders server-side through WordPress template system

 TECHNICAL IMPROVEMENTS:
- Fixed JavaScript syntax error causing console errors
- Clean template integration with proper class instantiation
- Proper escaping and WordPress coding standards
- Maintainable code following WordPress plugin architecture

 PERFECT RESULTS:
- Enhanced navigation menu working flawlessly
- Professional horizontal navigation with icons and dropdowns
- Working breadcrumbs (Home › Trainer › Dashboard)
- Zero JavaScript errors
- Clean, semantic HTML output
- Responsive design integration

 NAVIGATION FEATURES:
🏠 Dashboard - Main trainer overview
📅 Events ▼ - Event management with dropdown
📍 Venues ▼ - Venue management with dropdown
🏢 Organizers ▼ - Organizer management with dropdown
👤 Profile ▼ - Profile management with dropdown

The navigation system now follows WordPress best practices with:
- Server-side rendering through templates
- Proper PHP class integration
- No JavaScript DOM manipulation
- Clean, maintainable code architecture
- Full compatibility with WordPress theme system

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 22:32:23 -03:00

124 lines
No EOL
3.2 KiB
PHP

<?php
/**
* HVAC Template Integration
*
* Handles the integration of navigation and breadcrumbs into trainer pages
*/
if (!defined('ABSPATH')) {
exit;
}
class HVAC_Template_Integration {
/**
* Instance of this class
*/
private static $instance = null;
/**
* Get instance
*/
public static function instance() {
if (is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*/
public function __construct() {
add_action('init', array($this, 'init'));
}
/**
* Initialize
*/
public function init() {
// Add navigation and breadcrumbs to trainer pages
add_action('wp', array($this, 'setup_template_integration'));
}
/**
* Setup template integration based on current page
*/
public function setup_template_integration() {
// Check if we're on a trainer page
if ($this->is_trainer_page()) {
// Use proper WordPress content filtering
add_filter('the_content', array($this, 'add_navigation_to_content'), 1);
}
}
/**
* Check if current page is a trainer page
*/
private function is_trainer_page() {
global $wp;
// Get current URL path
$current_url = home_url(add_query_arg(array(), $wp->request));
// Check if URL contains /trainer/ but not /master-trainer/
return (strpos($current_url, '/trainer/') !== false && strpos($current_url, '/master-trainer/') === false);
}
/**
* Render navigation and breadcrumbs
*/
public function render_navigation_and_breadcrumbs() {
// Prevent duplicate rendering
static $rendered = false;
if ($rendered) {
return;
}
$rendered = true;
// Check if user has trainer capabilities
if (!current_user_can('hvac_trainer')) {
return;
}
?>
<div class="hvac-template-integration-wrapper">
<?php
// Render navigation if class exists
if (class_exists('HVAC_Trainer_Navigation')) {
$nav = new HVAC_Trainer_Navigation();
echo $nav->render_navigation();
}
// Render breadcrumbs if class exists
if (class_exists('HVAC_Breadcrumbs')) {
$breadcrumbs = new HVAC_Breadcrumbs();
echo $breadcrumbs->render_breadcrumbs();
}
?>
</div>
<?php
}
/**
* Alternative method to add navigation via shortcode in content
*/
public function add_navigation_to_content($content) {
if ($this->is_trainer_page() && current_user_can('hvac_trainer')) {
$nav_content = '';
// Add navigation before content
ob_start();
$this->render_navigation_and_breadcrumbs();
$nav_content = ob_get_clean();
$content = $nav_content . $content;
}
return $content;
}
}
// Initialize
HVAC_Template_Integration::instance();