$_POST['id'] ?? generateSlug($_POST['title']), 'title' => $_POST['title'], 'description' => $_POST['description'], 'cover' => $story['cover'] ?? '', 'created' => $story['created'] ?? date('Y-m-d'), 'updated' => date('Y-m-d'), 'chapters' => $story['chapters'] ?? [] ]; // Gestion de l'upload de couverture if (isset($_FILES['cover']) && $_FILES['cover']['error'] !== UPLOAD_ERR_NO_FILE) { $uploadHandler = new CoverUploadHandler(); $storyData['cover'] = $uploadHandler->handleUpload($_FILES['cover'], $storyData['id']); } Stories::save($storyData); $success = 'Roman sauvegardé avec succès'; $story = $storyData; } catch (Exception $e) { $error = 'Erreur lors de la sauvegarde : ' . $e->getMessage(); } } function generateSlug($title) { $slug = strtolower($title); $slug = preg_replace('/[^a-z0-9-]/', '-', $slug); $slug = preg_replace('/-+/', '-', $slug); return trim($slug, '-'); } ?> <?= $story ? 'Modifier' : 'Nouveau' ?> roman - Administration

roman

Couverture actuelle

Chapitres

$chapter): ?>