findById($chapter_id); if (!$chapter || $chapter['user_id'] != $user_id) { $_SESSION['error'] = "Глава не найдена или у вас нет доступа"; redirect('books.php'); } $book_id = $chapter['book_id']; $is_edit = true; } // Проверяем, что book_id указан и пользователь имеет доступ к книге if (!$book_id) { $_SESSION['error'] = "Не указана книга"; redirect('books.php'); } if (!$bookModel->userOwnsBook($book_id, $user_id)) { $_SESSION['error'] = "У вас нет доступа к этой книге"; redirect('books.php'); } // Получаем информацию о книге $book = $bookModel->findById($book_id); // Обработка формы if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!verify_csrf_token($_POST['csrf_token'] ?? '')) { $_SESSION['error'] = "Ошибка безопасности"; redirect($is_edit ? "chapter_edit.php?id=$chapter_id" : "chapter_edit.php?book_id=$book_id"); } // Обработка автосохранения if (isset($_POST['autosave']) && $_POST['autosave'] === 'true') { // Автосохранение работает только для существующих глав if (!$is_edit) { // Если это не редактирование, игнорируем автосохранение header('Content-Type: application/json'); echo json_encode(['success' => false, 'message' => 'Автосохранение недоступно для новых глав']); exit; } $title = trim($_POST['title'] ?? ''); $content = trim($_POST['content'] ?? ''); $status = $_POST['status'] ?? 'draft'; if (empty($title)) { header('Content-Type: application/json'); echo json_encode(['success' => false, 'message' => 'Название главы обязательно']); exit; } $data = [ 'title' => $title, 'content' => $content, 'status' => $status, 'book_id' => $book_id ]; $success = $chapterModel->update($chapter_id, $data); header('Content-Type: application/json'); echo json_encode(['success' => $success]); exit; } // Обычная обработка формы (не автосохранение) $title = trim($_POST['title'] ?? ''); $content = trim($_POST['content'] ?? ''); $status = $_POST['status'] ?? 'draft'; if (empty($title)) { $_SESSION['error'] = "Название главы обязательно"; } else { $data = [ 'title' => $title, 'content' => $content, 'status' => $status, 'book_id' => $book_id ]; if ($is_edit) { $success = $chapterModel->update($chapter_id, $data); $message = $success ? "Глава успешно обновлена" : "Ошибка при обновлении главы"; } else { $success = $chapterModel->create($data); $message = $success ? "Глава успешно создана" : "Ошибка при создании главы"; if ($success) { $new_chapter_id = $pdo->lastInsertId(); redirect("chapter_edit.php?id=$new_chapter_id"); } } if ($success) { $_SESSION['success'] = $message; redirect("book_edit.php?id=$book_id"); } else { $_SESSION['error'] = $message; } } } $page_title = $is_edit ? "Редактирование главы" : "Создание новой главы"; include 'views/header.php'; ?>
Книга: = e($book['title']) ?>