94 lines
3.0 KiB
PHP
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(); |