Event_Controller.php $file = $base_dir . 'controllers/' . $class_name . '.php'; if (file_exists($file)) { require_once $file; return; } } if(strpos($relative_class, 'views\\CRVI_') === 0) { $class_name = substr($relative_class, strlen('views\\CRVI_')); $file = $base_dir . 'views/' . $class_name . '.php'; if (file_exists($file)) { require_once $file; return; } } if(strpos($relative_class, 'models\\CRVI_') === 0) { $class_name = substr($relative_class, strlen('models\\CRVI_')); $file = $base_dir . 'models/' . $class_name . '.php'; if (file_exists($file)) { require_once $file; return; } } // Fallback : essayer le mapping standard $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php'; if (file_exists($file)) { require_once $file; return; } } } }); // Import de la classe principale du plugin use ESI_CRVI_AGENDA\controllers\CRVI_Plugin; // Hooks d'activation/désactivation register_activation_hook(__FILE__, ['CRVI_Plugin', 'activate']); register_deactivation_hook(__FILE__, ['CRVI_Plugin', 'deactivate']); // Initialisation du plugin /* add_action('init', function () { if (class_exists('ESI_CRVI_AGENDA\controllers\CRVI_Plugin')) { CRVI_Plugin::init(); } }); */ $plugin = new CRVI_Plugin(); $plugin->load_actions(); $plugin->load_filters(); $plugin->load_shortcodes(); $plugin->load_frontend_assets(); $plugin->load_admin_assets();