Files
PIBD-23_Ivanov.D.A._Interne…/MyWebSite/dist/catalog.html
2025-04-12 11:52:18 +04:00

462 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Каталог | Книжный интернет-магазин "Тома"</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css" />
<!-- Ваш CSS -->
<link rel="stylesheet" crossorigin href="/assets/style-k5itloYG.css">
</head>
<body>
<!-- Навигация -->
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top shadow-sm">
<div class="container">
<a class="navbar-brand d-flex align-items-center" href="index.html">
<img src="/assets/logo-DsrEtJYJ.png" alt="Логотип" class="logo me-2" />
<span class="d-none d-lg-block">Книжный магазин "Тома"</span>
<span class="d-lg-none">"Тома"</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarContent">
<ul class="navbar-nav ms-auto">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="navbarDropdown"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false"
>
Страницы
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="index.html">Главная</a></li>
<li><a class="dropdown-item" href="catalog.html">Каталог</a></li>
<li><a class="dropdown-item" href="discounts.html">Скидки</a></li>
<li><a class="dropdown-item" href="basket.html">Корзина</a></li>
<li><a class="dropdown-item" href="contactUs.html">Контакты</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<!-- Основной контент -->
<main class="container mt-5 pt-5">
<h2 class="text-center mb-5">Каталог книг</h2>
<!-- Фантастика -->
<section class="mb-5">
<div class="genre-title bg-light p-3 rounded text-center mb-4">
<h3>Фантастика</h3>
</div>
<button class="btn btn-success" data-bs-toggle="modal" data-bs-target="#addBookModal">
<i class="bi bi-plus-circle"></i> Добавить книгу
</button>
<div class="row g-4" id="fantasy-books">
<!-- Существующие книги будут здесь -->
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/dune-Co1F1vkB.jpg"
class="img-fluid rounded-start h-100"
alt="Дюна"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Дюна</h5>
<p class="card-text text-muted">Фрэнк Герберт</p>
<p class="card-text">
Эпическая история о борьбе за контроль над планетой Арракис, источником
самого ценного вещества во вселенной.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">500 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/foundation-5XPRZ_kD.jpg"
class="img-fluid rounded-start h-100"
alt="Основание"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Основание</h5>
<p class="card-text text-muted">Айзек Азимов</p>
<p class="card-text">
Сага о падении и возрождении галактической империи, основанная на научных
принципах.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">600 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Детектив -->
<section class="mb-5">
<div class="genre-title bg-light p-3 rounded text-center mb-4">
<h3>Детектив</h3>
</div>
<div class="row g-4">
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/murder_on_the_orient_express-CZUCH3sF.jpg"
class="img-fluid rounded-start h-100"
alt="Убийство в Восточном экспрессе"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Убийство в Восточном экспрессе</h5>
<p class="card-text text-muted">Агата Кристи</p>
<p class="card-text">
Загадочное убийство на поезде, где каждый пассажир может быть подозреваемым.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">750 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/the_girl_with_the_dragon_tattoo-CgrgasX2.jpg"
class="img-fluid rounded-start h-100"
alt="Девушка с татуировкой дракона"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Девушка с татуировкой дракона</h5>
<p class="card-text text-muted">Стиг Ларссон</p>
<p class="card-text">
История о расследовании исчезновения девушки, связанная с мрачными тайнами
семьи.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">700 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Роман -->
<section class="mb-5">
<div class="genre-title bg-light p-3 rounded text-center mb-4">
<h3>Роман</h3>
</div>
<div class="row g-4">
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/pride_and_prejudice-DkQ_n7hh.jpg"
class="img-fluid rounded-start h-100"
alt="Гордость и предубеждение"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Гордость и предубеждение</h5>
<p class="card-text text-muted">Джейн Остин</p>
<p class="card-text">
Классический роман о любви и социальном статусе в Англии XIX века.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">650 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/the_great_gatsby-qOYOk9u7.jpg"
class="img-fluid rounded-start h-100"
alt="Великий Гэтсби"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Великий Гэтсби</h5>
<p class="card-text text-muted">Фрэнсис Скотт Фицджеральд</p>
<p class="card-text">
История о любви, богатстве и утраченных мечтах в эпоху джаза.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">500 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Фэнтези -->
<section class="mb-5">
<div class="genre-title bg-light p-3 rounded text-center mb-4">
<h3>Фэнтези</h3>
</div>
<div class="row g-4">
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/harry_potter-DFeuOAF5.webp"
class="img-fluid rounded-start h-100"
alt="Гарри Поттер"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Гарри Поттер и философский камень</h5>
<p class="card-text text-muted">Дж.К. Роулинг</p>
<p class="card-text">Приключения молодого волшебника в школе магии Хогвартс.</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">800 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="/assets/the_hobbit-CkJ8H01T.webp"
class="img-fluid rounded-start h-100"
alt="Хоббит"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Хоббит</h5>
<p class="card-text text-muted">Дж.Р.Р. Толкин</p>
<p class="card-text">
Путешествие Бильбо Бэггинса в мир приключений и драконов.
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">750 руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Модальное окно для добавления книги -->
<div class="modal fade" id="addBookModal" tabindex="-1" aria-labelledby="addBookModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addBookModalLabel">Добавить новую книгу</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="addBookForm">
<div class="mb-3">
<label for="bookTitle" class="form-label">Название книги</label>
<input type="text" class="form-control" id="bookTitle" required />
</div>
<div class="mb-3">
<label for="bookAuthor" class="form-label">Автор</label>
<input type="text" class="form-control" id="bookAuthor" required />
</div>
<div class="mb-3">
<label for="bookPrice" class="form-label">Цена (руб.)</label>
<input type="number" class="form-control" id="bookPrice" required />
</div>
<div class="mb-3">
<label for="bookDescription" class="form-label">Описание</label>
<textarea class="form-control" id="bookDescription" rows="3" required></textarea>
</div>
<div class="mb-3">
<label for="bookImage" class="form-label"
>Имя файла изображения (из папки images)</label
>
<input type="text" class="form-control" id="bookImage" required />
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-primary" id="saveBookBtn">Сохранить</button>
</div>
</div>
</div>
</div>
<!-- Подвал -->
<footer class="bg-light py-4 mt-5">
<div class="container">
<div class="row">
<div class="col-md-6 mb-4 mb-md-0">
<h5 class="mb-3">Контакты</h5>
<ul class="list-unstyled">
<li><i class="bi bi-envelope me-2"></i> info@toma.ru</li>
<li><i class="bi bi-phone me-2"></i> +7 (123) 456-78-90</li>
<li><i class="bi bi-clock me-2"></i> Пн-Пт 9:00-18:00</li>
<li><i class="bi bi-geo-alt me-2"></i> г. Москва, ул. Литераторов, д. 1</li>
</ul>
</div>
<div class="col-md-6 text-md-end">
<h5 class="mb-3">Социальные сети</h5>
<div class="social-media">
<a href="#" class="text-decoration-none me-3"><i class="bi bi-facebook fs-3"></i></a>
<a href="#" class="text-decoration-none me-3"><i class="bi bi-vk fs-3"></i></a>
<a href="#" class="text-decoration-none"><i class="bi bi-telegram fs-3"></i></a>
</div>
</div>
</div>
</div>
</footer>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js"></script>
<!-- Скрипт для добавления книг -->
<script>
document.addEventListener("DOMContentLoaded", function () {
const saveBookBtn = document.getElementById("saveBookBtn");
const addBookForm = document.getElementById("addBookForm");
const fantasyBooksContainer = document.getElementById("fantasy-books");
const addBookModal = new bootstrap.Modal(document.getElementById("addBookModal"));
saveBookBtn.addEventListener("click", function () {
if (addBookForm.checkValidity()) {
// Получаем значения из формы
const title = document.getElementById("bookTitle").value;
const author = document.getElementById("bookAuthor").value;
const price = document.getElementById("bookPrice").value;
const description = document.getElementById("bookDescription").value;
const image = document.getElementById("bookImage").value;
// Создаем HTML для новой карточки книги
const bookCard = `
<div class="col-md-6">
<div class="card h-100 border-0 shadow-sm">
<div class="row g-0">
<div class="col-md-4">
<img
src="images/${image}"
class="img-fluid rounded-start h-100"
alt="${title}"
style="object-fit: cover"
/>
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text text-muted">${author}</p>
<p class="card-text">${description}</p>
<div class="d-flex justify-content-between align-items-center">
<p class="h5 mb-0">${price} руб.</p>
<button class="btn btn-primary">В корзину</button>
</div>
</div>
</div>
</div>
</div>
</div>
`;
// Добавляем новую карточку в раздел "Фантастика"
fantasyBooksContainer.insertAdjacentHTML("beforeend", bookCard);
// Закрываем модальное окно и очищаем форму
addBookModal.hide();
addBookForm.reset();
} else {
// Показываем сообщения об ошибках валидации
addBookForm.classList.add("was-validated");
}
});
// Сбрасываем состояние валидации при закрытии модального окна
document.getElementById("addBookModal").addEventListener("hidden.bs.modal", function () {
addBookForm.classList.remove("was-validated");
});
});
</script>
</body>
</html>