Crvi/ESI_crvi_agenda.php
2026-01-20 07:54:37 +01:00

94 lines
3.0 KiB
PHP

<?php
/**
* Plugin Name: ESI_crvi_agenda
* Description: Gestion d'agenda avancée pour CRVI (Custom Post Types, ACF, FullCalendar, API export...)
* Version: 0.1.0
* Author: Votre Nom
* Text Domain: esi_crvi_agenda
*/
declare(strict_types=1);
define('ESI_CRVI_AGENDA_VERSION', '0.1.0');
define('ESI_CRVI_AGENDA_DIR', plugin_dir_path(__FILE__));
define('ESI_CRVI_AGENDA_URL', plugin_dir_url(__FILE__));
if (!defined('ABSPATH')) {
exit;
}
// Autoloader simple pour les classes CRVI et celles avec namespace
spl_autoload_register(function ($class) {
if (strpos($class, 'ESI_CRVI_AGENDA\\') === 0 || strpos($class, 'CRVI_') === 0) {
// Gestion des classes avec namespace ESI_CRVI_AGENDA
if (strpos($class, 'ESI_CRVI_AGENDA') === 0) {
$base_dir = __DIR__ . '/app/';
$relative_class = substr($class, strlen('ESI_CRVI_AGENDA\\'));
// Mapping simple pour les classes CRVI_
if (strpos($relative_class, 'controllers\\CRVI_') === 0) {
$class_name = substr($relative_class, strlen('controllers\\CRVI_'));
// Pour CRVI_Event_Controller -> 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();