Добавлен: 28.03.2023
Просмотров: 264
Скачиваний: 2
4.2. Описание интерфейса администратора
Интерфейс основных страниц для библиотекаря практически идентичен. Различия заключаются в том, что для библиотекаря выводится другой блок приветствия (рисунок 21), добавляется еще один столбец в списке книг (рисунок 22) и присутствует кнопка редактирования информации в профилях других пользователей.
Рисунок 21
Рисунок 22
В панели администратора (панели библиотекаря) присутствует возможность выбрать только нужные функции. При этом для тех функций, где необходимо знание данных пользователей или книг, автоматически выводятся соответствующие списки, даже если «галочки» не проставлены. Форма выбора нужных функций и, соответственно, список функций представлены на рисунке 23. Пример формы работы с данными представлен на рисунке 24. Пример списка книг в панели библиотекаря представлен на рисунке 25. Пример списка пользователей – на рисунке 26.
Рисунок 23
Рисунок 24
Рисунок 25
Рисунок 26
Также для администратора присутствует возможность просмотра активностей пользователей с книгами (учет передвижения книг). Переход на эту страницу возможен через страницу со списком книг. Выбор отображаемых книг возможен посредством отправки GET-запроса. Сама страница передвижения книг представлена на рисунке 27.
Рисунок 27
4.3. Инструкция пользователя
При первом входе на сайт, необходимо зарегистрироваться. Кнопка регистрации находится в верхней части сайта (рисунок 28).
Рисунок 28
Для регистрации на сайте и оформления электронного читательского билета, необходимо заполнить все поля, отмеченные звездочками, в открывшейся форме (рисунок 29).
Рисунок 29
Если у Вас уже есть учетная запись или если Вы только что зарегистрировались, Вам необходимо перейти на страницу входа (рисунок 30) и корректно заполнить оба поля (рисунок 31).
Рисунок 30
Рисунок 31
Если Вы все правильно сделаете, Вы увидите следующее сообщение на любой странице сайта (рисунок 32).
Рисунок 32
Если Вы что-то неправильно заполнили при регистрации, Вы можете один раз поменять свои данные. Для этого Вам надо перейти в личный кабинет по ссылке, расположенной вверху сайта, и нажать на кнопку в Вашем профиле (рисунок 33). Далее Вам необходимо заполнить нужные формы и, после заполнения и проверки введенных данных, нажать на кнопку для отправки (рисунок 34).
Рисунок 33
Рисунок 34
Если Вам необходимо забронировать книгу, Вы можете перейти по ссылкам вверху страницы на список книг и нажать на соответствующую кнопку в таблице с книгами (рисунок 35). Также для своего удобства Вы можете воспользоваться настройками отображения книг на странице через форму (рисунок 36).
Рисунок 35
Рисунок 36
В случае, если Вы забронировали не ту книгу, Вы можете снять бронь в личном кабинете, нажав на соответствующую кнопку (рисунок 37).
Рисунок 37
Если Вам надо обратиться в библиотеку, но Вы не можете сейчас позвонить или написать на электронную почту, Вы можете воспользоваться контактной формой, перейдя на страницу «Контактная информация» через ссылки вверху страницы. Далее Вам необходимо заполнить и отправить имеющуюся на странице контактную форму (рисунок 38).
Рисунок 38
Обращения рассматриваются в кратчайший срок после получения. Библиотекарь ответит Вам по телефону или электронной почте, указанных в данных учетной записи или при заполнении контактной формы.
После завершения работы с сайтом, Вы можете выйти из своей учетной записи, нажав на кнопку вверху (рисунок 39).
Рисунок 39
Заключение
В ходе разработки был спроектирован функционал сайта, разработана система компонентов, их связь и логистика, спроектирована база данных и включаемые в нее таблицы для динамической работы с данными. Все это спроектировано таким образом, чтобы обеспечить корректную работу сайта.
Также было создано разграничение прав пользователей, на основе которого был разграничен доступный функционал. Для реализации этого на страницы были добавлены скрипты, обеспечивающие проверку данных о сессии и, в случае несоответствия каких-либо данных, обеспечивающих перенаправление на другие страницы или отсутствие или изменение вывода каких-либо функций.
Полный итоговый функционал сайта включает в себя информацию о библиотеке, вывод новостной ленты библиотеки, динамически обновляемый список книг с возможностью их бронирования, ведение личных электронных читательских билетов, просмотр контактных данных и возможность связаться через контактную форму. Для библиотекарей также предусмотрены следующие функции: добавление и удаление пользователей, редактирование из персональной информации, просмотр всех данных о книгах и их передвижении, изменение данных о книгах, снятие бронирования, добавление, удаление, выдача и возврат книг, добавление и удаление новостей, рассмотрение и изменение статусов пользовательских обращений, получение полного списка пользователей и книг.
Таким образом, разработанный с использованием средств, указанных в техническом задании, сайт удовлетворяет всем поставленным перед разработкой требованиям. Дальнейшее направление развития сайта – улучшение безопасности пользователей и их данных, а также расширение функционала.
Список литературы
- Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
- Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
- Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.
- Lopez, A. Learning PHP 7 / A. Lopez – UK.: Packt Publishing, 2016. - 415 с.
- Электронный ресурс: [https://stackoverflow.com/]
- Электронный ресурс: [https://habr.com/]
- Электронный ресурс: [http://htmlbook.ru/]
- Электронный ресурс: [https://dev.mysql.com/]
- Электронный ресурс: [https://php.net/]
- Электронный ресурс: [https://php.su/]
Приложение
Исходные коды
Connection.php
<?php
session_start();
mb_internal_encoding('UTF-8');
$connection = mysqli_connect('localhost', 'root', '');
$select_db = mysqli_select_db($connection, 'mylibrary');
mysqli_query($connection, "SET NAMES utf8");
?>
Logout.php
<?php
session_start();
session_destroy();
header('Location: ../index.php');
exit;
?>
Welcome.php
<?php
echo '<section id="welcome">';
if (isset($_SESSION['name'])) {
echo 'Добро пожаловать, '. $_SESSION['name'] .'!';
echo '<br><a href="./includes/logout.php">Выйти</a>';
} else if (isset($_SESSION['login'])) {
echo 'Добро пожаловать, '. $_SESSION['login'] .'!';
echo '<br><a href="./includes/logout.php">Выйти</a>';
} else {
echo '<p><b><a href="login.php">Войти</a> | <a href="register.php">Зарегистрироваться</a></b></p>';
}
if (isset($_SESSION['role'])) {
if ($_SESSION['role'] == 'librarian') {
echo '<div class="adminpanel"><a href="librarian.php">Перейти в панель библиотекаря</a></section>';
}
}
echo '</section>';
?>
Head.html
<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" />
<link rel="stylesheet" href="css/main.css">
<link rel="SHORTCUT ICON" href="img/favicon.ico" type="image/x-icon">
Header.html
<header>
<section class="logotype"><img src="img/logo.png"></section>
<section class="sitename"><h1>Моя библиотека</h1>
<p>Сайт московской библиотеки на Нагорном проезде</p></section>
<section class="contacts">
<p><a href="mailto:info@mylibrary.org">info@MyLibrary.org</a><br>
<a href="tel:89999999999">8 (999) 999 99-99</a></p>
</section>
</header>
<nav>
<a href="login.php">Личный кабинет</a>
<a href="index.php">Главная страница</a>
<a href="index.php#about">Наша библиотека</a>
<a href="index.php#events">Последние события</a>
<a href="news.php">Все новости</a>
<a href="books.php">Книги</a>
<a href="contacts.php">Контактная информация</a>
</nav>
Footer.html
<footer>
<a href="login.php">Личный кабинет</a>
<a href="index.php">Главная страница</a>
<a href="news.php">Новости</a>
<a href="books.php">Книги</a>
<a href="contacts.php">Контактные данные</a>
<br>
<p>Сайт московской библиотеки на Нагорном проезде MyLibrary.org © 2019-2020</p>
</footer>
Index.php
<?php require('./includes/connection.php'); ?>
<!DOCTYPE HTML>
<html>
<head>
<?php require('./includes/head.html'); ?>
<title>Моя библиотека</title>
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<?php require('./includes/header.html'); ?>
<?php
require('./includes/welcome.php');
?>
<section id="about">
<h2>О библиотеке</h2>
<p>Сайт MyLibrary является официальным сайтом библиотеки на Нагорном проезде. На нашем сайте Вы можете отправить обращение по различным вопросом в библиотеку, просмотреть списки имеющихся книг, а также, если у Вас уже оформлен читательский билет, забронировать книгу.
<br>
В нашей библиотеке собрано большое количество различной литературы. Перечень имеющихся книг постоянно обновляется и пополняется. Для Вашего удобства всю информацию о наличии интересующих книг можно посмотреть на этом сайте даже в случае отсутствия читательского билета.
<br>
<b>Мы заботимся о Вас!</b>
<br>
<i>Также мы принимаем ненужные книги и домашние библиотеки. Для этого достаточно прийти в библиотеку или, в случае, если книг много, отправить заранее обращение, чтобы мы могли помочь Вам вывезти все <b>ненужные Вам, но так нужные нам</b>, книги.</i>
</p>
<h2><a href="books.php">Вы можете посмотреть интересующие Вас книги, перейдя по этой ссылке</a></h2>
</section>
<?php
if (isset($_SESSION['login']) == FALSE) {
echo '<section id="information">
<div class="center"><h2>Как получить учетную запись?</h2>
<p>Это максимально просто! У нас нет никаких взносов и оплат. Чтобы получить электронный читательский билет, достаточно прийти в библиотеку и оформиться как наш постоянный читатель. Для этого Вам понадобятся всего лишь паспорт и прописка.</p>
<p><a href="register.php">Также Вы можете воспользоваться нашей формой регистрации и после подтвердить читательский билет, придя в библиотеку.</a></p>
</div></section>';
}
?>
<section id="events">
<h1>Последние новости нашей библиотеки</h1>
<?php
$resultToday = mysqli_query($connection, "SELECT * FROM `events` WHERE `date` = date(now()) ORDER BY `events`.`date`");
if ($resultToday) {
echo '<h2>Сегодня!</h2>';
$rows = mysqli_num_rows($resultToday);
for ($i = 0; $i < $rows ; ++$i) {
$row = mysqli_fetch_row($resultToday);
echo '<div class="newsblock"><p class="eventDate"><i>'.$row[1].'</i></p>';
echo '<h3>'.$row[2].'</h3>';
echo '<p>'.$row[3].'</p>';
if ($row[4] != NULL) {
echo '<p><a href="'.$row[4].'">Подробнее</a></p></div>';
} else {
echo '</div>';
}
}
}
$resultNext = mysqli_query($connection, "SELECT * FROM `events` WHERE `date` > date(now()) ORDER BY `events`.`date`");
if ($resultNext) {
echo '<h2>Будущие события</h2>';