'home', // Planner home only 'igny8-writer' => 'home' // Writer home only ]; // Check if current page needs CRON if (isset($cron_pages[$current_page])) { if (is_string($cron_pages[$current_page])) { // Page has submodule requirement return $current_submodule === $cron_pages[$current_page]; } return true; // Page needs CRON without submodule requirement } return false; } // --------------------------------------------------------------------- // ACTIVATION / DEACTIVATION // --------------------------------------------------------------------- register_activation_hook(__FILE__, 'igny8_activate'); register_deactivation_hook(__FILE__, 'igny8_deactivate'); function igny8_activate() { require_once plugin_dir_path(__FILE__) . 'install.php'; if (function_exists('igny8_install')) { igny8_install(); } flush_rewrite_rules(); } function igny8_deactivate() { flush_rewrite_rules(); } // --------------------------------------------------------------------- // ADMIN ASSETS ENQUEUING // --------------------------------------------------------------------- add_action('admin_enqueue_scripts', 'igny8_admin_scripts'); function igny8_admin_scripts($hook) { // Only load on Igny8 admin pages if (strpos($hook, 'igny8') === false) return; $plugin_url = plugin_dir_url(__FILE__); // Enqueue core CSS with updated version wp_enqueue_style('igny8-admin-style', $plugin_url . 'assets/css/core.css', [], '0.1'); // Enqueue Chart.js wp_enqueue_script('chart-js', 'https://cdn.jsdelivr.net/npm/chart.js@4.5.0/dist/chart.umd.min.js', [], '4.5.0', true); wp_add_inline_script('chart-js', 'window.Chart = Chart;', 'after'); // Enqueue core JavaScript with dependencies and updated version wp_enqueue_script('igny8-admin-js', $plugin_url . 'assets/js/core.js', ['jquery', 'chart-js'], '0.1', true); // Enqueue image queue processor wp_enqueue_script('igny8-image-queue', $plugin_url . 'assets/js/image-queue-processor.js', ['igny8-admin-js'], '0.1', true); // AJAX localization wp_localize_script('igny8-admin-js', 'igny8_ajax', [ 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('igny8_ajax_nonce'), 'module' => igny8_get_current_module(), 'debug_enabled' => false ]); } // --------------------------------------------------------------------- // HELPER: Get current module from admin URL // --------------------------------------------------------------------- function igny8_get_current_module() { if (isset($_GET['page']) && strpos($_GET['page'], 'igny8-') === 0) { return str_replace('igny8-', '', sanitize_text_field($_GET['page'])); } return 'planner'; }