findById($book_id); if (!$book || $book['user_id'] != $user_id) { $_SESSION['error'] = "Книга не найдена или у вас нет доступа"; redirect('books.php'); } $is_edit = true; } // Обработка формы $cover_error = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!verify_csrf_token($_POST['csrf_token'] ?? '')) { $_SESSION['error'] = "Ошибка безопасности"; redirect($is_edit ? "book_edit.php?id=$book_id" : 'book_edit.php'); } $title = trim($_POST['title'] ?? ''); $description = trim($_POST['description'] ?? ''); $genre = trim($_POST['genre'] ?? ''); if (empty($title)) { $_SESSION['error'] = "Название книги обязательно"; } else { $series_id = !empty($_POST['series_id']) ? (int)$_POST['series_id'] : null; $sort_order_in_series = !empty($_POST['sort_order_in_series']) ? (int)$_POST['sort_order_in_series'] : null; // Если серия указана, но порядок нет - генерируем автоматически if ($series_id && !$sort_order_in_series) { $seriesModel = new Series($pdo); $sort_order_in_series = $seriesModel->getNextSortOrder($series_id); } $data = [ 'title' => $title, 'description' => $description, 'genre' => $genre, 'user_id' => $user_id, 'series_id' => $series_id, 'sort_order_in_series' => $sort_order_in_series ]; $data['published'] = isset($_POST['published']) ? 1 : 0; // Обработка загрузки обложки if (isset($_FILES['cover_image']) && $_FILES['cover_image']['error'] === UPLOAD_ERR_OK) { $cover_result = handleCoverUpload($_FILES['cover_image'], $book_id); if ($cover_result['success']) { $bookModel->updateCover($book_id, $cover_result['filename']); // Обновляем данные книги $book = $bookModel->findById($book_id); } else { $cover_error = $cover_result['error']; } } // Обработка удаления обложки if (isset($_POST['delete_cover']) && $_POST['delete_cover'] == '1') { $bookModel->deleteCover($book_id); $book = $bookModel->findById($book_id); } if ($is_edit) { $success = $bookModel->update($book_id, $data); $message = $success ? "Книга успешно обновлена" : "Ошибка при обновлении книги"; } else { $success = $bookModel->create($data); $message = $success ? "Книга успешно создана" : "Ошибка при создании книги"; if ($success) { $new_book_id = $pdo->lastInsertId(); redirect("book_edit.php?id=$new_book_id"); } } if ($success) { $_SESSION['success'] = $message; redirect('books.php'); } else { $_SESSION['error'] = $message; } } } $page_title = $is_edit ? "Редактирование книги" : "Создание новой книги"; include 'views/header.php'; ?>
Отправьте эту ссылку читателям для просмотра опубликованных глав:
Примечание: В публичном просмотре отображаются только главы со статусом "Опубликована"
Экспортируйте книгу в различные форматы:
Примечание: Экспортируются все главы книги (включая черновики)
| Название | Статус | Слов | Действия |
|---|---|---|---|
| = e($chapter['title']) ?> | = $chapter['status'] == 'published' ? 'Опубликована' : 'Черновик' ?> | = $chapter['word_count'] ?> | Редактировать |
В этой книге пока нет глав.
✏️ Добавить первую главу