'Départements', 'labels' => [ 'name' => 'Départements', 'singular_name' => 'Département', 'add_new' => 'Ajouter un département', 'add_new_item' => 'Ajouter un nouveau département', 'edit_item' => 'Modifier le département', 'new_item' => 'Nouveau département', 'view_item' => 'Voir le département', 'search_items' => 'Rechercher un département', 'not_found' => 'Aucun département trouvé', 'not_found_in_trash' => 'Aucun département dans la corbeille', ], 'public' => false, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 25, 'supports' => ['title'], 'capability_type' => 'post', ]); } public static function register_routes() { register_rest_route('crvi_agenda/v1', '/departements', [ 'methods' => 'GET', 'callback' => [self::class, 'get_items'], 'permission_callback' => [self::class, 'can_edit'], ]); register_rest_route('crvi_agenda/v1', '/departements/(?P\d+)', [ 'methods' => 'GET', 'callback' => [self::class, 'get_item'], 'permission_callback' => [self::class, 'can_edit'], ]); register_rest_route('crvi_agenda/v1', '/departements', [ 'methods' => 'POST', 'callback' => [self::class, 'create_item'], 'permission_callback' => [self::class, 'can_edit'], ]); register_rest_route('crvi_agenda/v1', '/departements/(?P\d+)', [ 'methods' => 'PUT', 'callback' => [self::class, 'update_item'], 'permission_callback' => [self::class, 'can_edit'], ]); register_rest_route('crvi_agenda/v1', '/departements/(?P\d+)', [ 'methods' => 'DELETE', 'callback' => [self::class, 'delete_item'], 'permission_callback' => [self::class, 'can_delete'], ]); } //import csv public static function import_csv_admin() { if (!current_user_can('manage_options')) { wp_die('Non autorisé'); } if (empty($_FILES['import_csv']['tmp_name'])) { wp_redirect(admin_url('admin.php?page=crvi_agenda&import=error&msg=Fichier manquant')); exit; } $file = $_FILES['import_csv']['tmp_name']; $handle = fopen($file, 'r'); if (!$handle) { wp_redirect(admin_url('admin.php?page=crvi_agenda&import=error&msg=Impossible d\'ouvrir le fichier')); exit; } $header = fgetcsv($handle, 0, ','); $created = $updated = $errors = 0; while (($row = fgetcsv($handle, 0, ',')) !== false) { if (count($row) !== count($header)) continue; $data = array_combine($header, $row); $data = array_combine( array_map(function($k) { return sanitize_title($k); }, array_keys($data)), array_map('trim', array_values($data)) ); $result = CRVI_Departement_Model::create($data, false); if ($result === 'created') $created++; elseif ($result === 'updated') $updated++; else $errors++; } fclose($handle); $msg = "Créés: $created, Modifiés: $updated, Erreurs: $errors"; wp_redirect(admin_url('admin.php?page=crvi_agenda&import=success&msg=' . urlencode($msg))); exit; } }