Some checks failed
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Has been cancelled
Security Monitoring & Compliance / Secrets & Credential Scan (push) Has been cancelled
Security Monitoring & Compliance / WordPress Security Analysis (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Has been cancelled
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Has been cancelled
Security Monitoring & Compliance / Static Code Security Analysis (push) Has been cancelled
Security Monitoring & Compliance / Security Compliance Validation (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Notification (push) Has been cancelled
Security Monitoring & Compliance / Security Summary Report (push) Has been cancelled
Security Monitoring & Compliance / Security Team Notification (push) Has been cancelled
- Deploy 6 simultaneous WordPress specialized agents using sequential thinking and Zen MCP - Resolve all critical issues: permissions, jQuery dependencies, CDN mapping, security vulnerabilities - Implement bulletproof jQuery loading system with WordPress hook timing fixes - Create professional MapGeo Safety system with CDN health monitoring and fallback UI - Fix privilege escalation vulnerability with capability-based authorization - Add complete announcement admin system with modal forms and AJAX handling - Enhance import/export functionality (54 trainers successfully exported) - Achieve 100% operational master trainer functionality verified via MCP Playwright E2E testing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
92 lines
No EOL
3.2 KiB
PHP
92 lines
No EOL
3.2 KiB
PHP
<?php
|
|
/**
|
|
* Template Name: Master Announcements
|
|
* Description: Template for the master trainer announcements page
|
|
*/
|
|
|
|
// Define constant to indicate we are in a page template
|
|
define('HVAC_IN_PAGE_TEMPLATE', true);
|
|
|
|
get_header();
|
|
|
|
// Authentication handled by centralized HVAC_Access_Control system
|
|
// Redundant template-level auth check removed to prevent content blocking
|
|
|
|
echo '<div class="hvac-page-wrapper hvac-master-announcements-page">';
|
|
echo '<div class="container">';
|
|
|
|
// Render master trainer navigation inside the wrapper
|
|
if (class_exists('HVAC_Master_Menu_System')) {
|
|
$master_menu = HVAC_Master_Menu_System::instance();
|
|
$master_menu->render_master_menu();
|
|
}
|
|
|
|
// Render breadcrumbs inside the wrapper
|
|
if (class_exists('HVAC_Breadcrumbs')) {
|
|
// Fix: The method is render_breadcrumbs(), not render()
|
|
$breadcrumbs_instance = HVAC_Breadcrumbs::instance();
|
|
echo $breadcrumbs_instance->render_breadcrumbs();
|
|
}
|
|
?>
|
|
|
|
<div class="hvac-master-announcements">
|
|
<h1 class="page-title">Announcements</h1>
|
|
|
|
<div class="announcements-intro">
|
|
<p>Manage system-wide announcements for all trainers.</p>
|
|
</div>
|
|
|
|
<div class="announcement-actions">
|
|
<button class="button button-primary hvac-add-announcement">Add New Announcement</button>
|
|
</div>
|
|
|
|
<div class="announcements-content">
|
|
<?php
|
|
// Render admin interface for master trainers
|
|
if (class_exists('HVAC_Announcements_Admin') && HVAC_Announcements_Permissions::is_master_trainer()) {
|
|
$admin_interface = HVAC_Announcements_Admin::get_instance();
|
|
echo $admin_interface->render_admin_interface();
|
|
}
|
|
|
|
// Also display the announcements timeline for viewing
|
|
echo '<div class="announcements-display-section">';
|
|
echo '<h2>' . __('Published Announcements', 'hvac') . '</h2>';
|
|
|
|
// First try the_content() to get any shortcode from post_content
|
|
ob_start();
|
|
if (have_posts()) {
|
|
while (have_posts()) {
|
|
the_post();
|
|
the_content();
|
|
}
|
|
}
|
|
$post_content = ob_get_clean();
|
|
|
|
// If post_content is empty or just contains the shortcode without rendering, try direct shortcode
|
|
if (empty(trim(strip_tags($post_content))) || strpos($post_content, '[hvac_announcements_timeline]') !== false) {
|
|
// Ensure the shortcode class is initialized
|
|
if (class_exists('HVAC_Announcements_Display')) {
|
|
$instance = HVAC_Announcements_Display::get_instance();
|
|
if (method_exists($instance, 'render_timeline_shortcode')) {
|
|
echo $instance->render_timeline_shortcode();
|
|
} else {
|
|
echo do_shortcode('[hvac_announcements_timeline]');
|
|
}
|
|
} else {
|
|
echo '<div class="hvac-notice">Announcements system is not available. Please contact an administrator.</div>';
|
|
}
|
|
} else {
|
|
echo $post_content;
|
|
}
|
|
|
|
echo '</div>'; // .announcements-display-section
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
echo '</div>'; // .container
|
|
echo '</div>'; // .hvac-page-wrapper
|
|
|
|
get_footer();
|
|
?>
|