![](/stc/img/evkova.png)
Разработка сайта магазина игрушек
Содержание:
Введение
Информация во все времена играла очень важную роль в жизнедеятельности человека. С давнего времени сбор и приведение в систему сведений об окружающей среде помогали человеку выживать в сложных условиях – передавая от поколения к поколению опыт и навыки приготовления орудий для охоты и труда, шитья одежды и изготовления лекарств. Информация беспрерывно обновлялась и дополнялась – всякое исследованное явление открывало путь к чему-то новому, более сложному. С течением времени, большие объемы данных об окружающем мире поспособствовали развитию научно-технического прогресса и, как следствие, в целом всего общества – человек смог научиться управлять различными видами вещества и энергии.
Использование компьютерной техники и всевозможных устройств глубоко проникло в повседневную жизнь людей. И многие используют в своей деятельности различные информационные технологии, базы данных, и прочее, даже не представляя об этом.
В настоящей работе требуется спроектировать информационную систему интернет магазина, позволяющую пользователям просматривать и заказывать интересующие их товары.
Техническое задание выбор средств реализации
В качестве предметной области для создания web-приложения выступает интернет магазин BABYLAND.RU, для которого необходимо разработать информационную систему по отображению информации о наличии товаров новинок, а также показывающую общую информацию о магазине.
На сайте интернет магазина необходимо представить информацию о товарах, которые продаются или будут продаваться в интернет магазине в ближайшее время.
За наполнение сайта необходимой информацией отвечает администратор, в обязанности которого входит:
- слежение за актуальностью информации, хранимой в справочниках системы;
- заполнение информации о товарах.
- установка и наполнение новых товаров в магазине.
Основной информацией хранимой в справочниках системы является информация, характеризующая описание самих товаров, а также о цене и количестве различной техники. Стоимость товара может варьироваться в зависимости от технических характеристик, модели, и вида товара.
Кроме администратора система предусматривает возможность регистрации и работы обычного пользователя. Данный пользователь обладает возможностью просматривать информацию о товарах, и возможности покупки различных товаров.
Также на сайт интернет магазина можно заходить в режиме гостя, в данном случае посетитель ресурса имеет возможность просмотра информации о интересующих его товарах и новинок в режиме ознакомления. Для возможности приобретения билетов данному посетителю можно будет пройти регистрацию в системе или заполнить данные уже в процессе.
Возможные варианты использования и способы доступа на сайт и доступные функции для каждого из пользователей показаны на схеме (Рисунок 1.1).
Рисунок 1.1 – Схема вариантов использования
Кроме ведения и показа справочной информации на сайте необходимо предусмотреть информационные страницы с описанием деятельности магазина и контактной информацией для связи с сотрудниками.
В виду того, что система должна обладать определенной динамичностью, следует внимательно подходить к выбору средств реализации системы. Для обеспечения хранения данных потребуется использование базы данных.
Проект должен соответствовать современным требованиям, и использовать в своей реализации последние наработки и достижения в области сайтостроения. Готовое решение должно поддерживаться мобильными устройствами и нормально отображаться на них и быть полностью читабельным и иметь хорошую юзабилити на любых устройствах. Что предъявляет требования адаптивности к дизайну системы.
HTML5
HTML5 (англ. HyperText Markup Language, version 5) — язык для структурирования и представления содержимого всемирной паутины. Это пятая версия HTML. [2] Хотя стандарт был завершён (рекомендованная версия к использованию) только в 2014 году (предыдущая, четвёртая, версия опубликована в 1999 году), ещё с 2013 года браузерами оперативно осуществлялась поддержка, а разработчиками — использование рабочего стандарта (англ. HTML Living Standard). Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий с одновременным сохранением обратной совместимости, удобочитаемости кода для человека и простоты анализа для парсеров.
Во всемирной паутине долгое время использовались стандарты HTML 4.01, XHTML 1.0 и XHTML 1.1. Веб-страницы на практике оказывались свёрстаны с использованием смеси особенностей, представленных различными спецификациями, включая спецификации программных продуктов, например, веб-браузеров, а также сложившихся общеупотребительных приёмов. HTML5 был создан как единый язык разметки, который мог бы сочетать синтаксические нормы HTML и XHTML. Он расширяет, улучшает и рационализирует разметку документов, а также добавляет единый API для сложных веб-приложений.
CSS
Спецификация CSS3 – это неоспоримое будущее в области декоративного оформления веб-страниц, и ее разработка еще далека от завершения. Большинство модулей все еще продолжает совершенствоваться и модифицироваться, и ни один браузер не поддерживает все модули. Это означает, что CSS3 испытывает такие же сложности, как и HTML5. Веб-разработчикам нужно решать, какие возможности использовать, а какие игнорировать, а также каким образом заполнить зияющие пробелы в браузерной поддержке.[2]
Аббревиатура CSS расшифровывается, как «каскадные таблицы стилей» (от англ. Cascading Style Sheets). Таблицы стилей предназначены для визуального оформления элементов веб-страницы. Как правило, CSS используется в связке с HTML, что является весьма эффективным «инструментом» при создании любого сайта. Именно поэтому, наряду с изучением HTML также рекомендуется изучить технологию CSS.
Спецификация CSS3 не является частью спецификации HTML5. Эти два стандарта были разработаны отдельно друг от друга, разными людьми, работающими в разное время в различных местах. Но даже организация W3C призывает веб-разработчиков использовать HTML5 и CSS3 вместе, как часть одной новой волны современного веб-дизайна.
Аббревиатура CSS расшифровывается, как «каскадные таблицы стилей» (от англ. Cascading Style Sheets). Таблицы стилей предназначены для визуального оформления элементов веб-страницы. Как правило, CSS используется в связке с HTML, что является весьма эффективным «инструментом» при создании любого сайта. Именно поэтому, наряду с изучением HTML также рекомендуется изучить технологию CSS.
CSS представляет собой совокупность параметров, с помощью которых отображается тот или иной элемент на веб-странице. Эти параметры могут указываться, как в отдельном файле (таблице стилей), так и быть прописаны непосредственно в HTML коде страницы. Например, на нашей веб странице могут быть такие элементы: заголовок статьи, абзацы, цитаты, сноски, картинки, видео ролики, ссылки на другие страницы сайта и т.д. Всем этим элементам мы можем задать определенный стиль отображения – размер шрифта, цвет букв, толщину рамок и картинок, стиль ссылок и так далее.
При работе с сайтом рекомендуется использовать именно отдельный файл со стилями, а не внедрять код со стилевыми настройками в отдельные страницы. Это поможет заметно сократить время разработки, так как при этом, все стили находятся в одном месте и при необходимости всегда можно оперативно найти конкретный стиль и изменить его. Файл со стилями имеет расширение .css.
JavaScript
JavaScript (JS для краткости) является языком программирования, который позволяет веб-страницам отвечать на действия пользователя дальше базового уровня. Он был создан в начале 90-х фирмой Netscape, браузер которой Netscape Navigator в те времена был наиболее популярным средством для просмотра веб-сайтов. Название javascript наводит на мысли о связи с языком java, который также может использоваться в веб-программировании, и, действительно, javascript разрабатывался во многом с опорой на язык Java, но следует всё же помнить, что это совершенно разные языки. Скрипты, написанные на javascript, выполняются на стороне клиента (т. е. на компьютере пользователя), и не просто на стороне клиента, а в самом браузере, поэтому не требуется никаких дополнительных программ, никаких плагинов и т. п., скрипт можно просто вставить в html-код страницы, и он будет выполняться в любом браузере. Javascript - простой и удобный язык, позволяющий легко управлять содержимым веб-страницы, отслеживая самые различные действия пользователя, и реагируя на это. Благодаря этому, javascript практически не имеет конкурентов в своей области применения и является первым языком, изучение которого нужно начинать веб-разработчику.
Bootstrap
Бутстрап — это css и js-фреймворк, по сути, по сути, набор файлов с готовым написанным кодом. Цель разработчиков практически любого фреймворка — упростить разработку сайта себе и другим, кому будет доступен инструмент. В случае с Bootstrap он полностью бесплатен, так что вы можете использовать его любым образом, редактировать исходный код и как угодно переделывать фреймворк под себя.
Классы Bootstrap можно разбить на 3 большие группы:
- классы для создания сетки (адаптивного макета страницы).
- классы для стилизации контента (текста, кода, изображений, таблиц и другой информации).
- служебные классы (для решения наиболее часто встречающихся вспомогательных задач, таких как выравнивание, управление отображением, добавление границ и др.).
Кроме классов во фреймворке Bootstrap имеются ещё и компоненты (готовые объекты интерфейса). Это кнопки, хлебные крошки, формы, навигационные меню, выпадающие списки, всплывающие панели и др.
Применение фреймворка во время создания сайтов позволит решить многие задачи:
- создание качественных адаптивных сайтов
- современный дизайн (единый стиль оформления HTML элементов и компонентов).
- является кроссбраузерным и кроссплатформенным (работает на всех популярных операционных системах и браузерах (Mozilla Firefox, Google Chrome, Safari, Internet Explorer и Opera и пр.).
- является открытым и бесплатным, что означает, что его можно использовать бесплатно как для личного, так и для коммерческого использования.
MySQL
MySQL – это одна из самых популярных и получивших широкое распространенние СУБД (система управления базами данных) для интернета ресурсов. Данная система не предназначена для обеспечения обработки больших объемов информации, но ее использование идеально в сфере интернет-сайтов, как не очень небольших, так и весьма крупных ресурсах.
MySQL выделяется прекрасной скоростью работы, он надежен и гибок. Работа с ним, в основном, не вызывает каких-либо затруднений. Что немаловажно – автоматическая поддержка сервера MySQL присутствует в поставке PHP.
PHP
PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) – это распространенный язык программирования общего назначения с открытым исходным кодом. PHP специально сконструирован для веб-разработок и его код может внедряться непосредственно в HTML и наоборот, HTML теги легко добавляются к скриптам, написанным на PHP.
PHP отличается от JavaScript тем, что PHP-скрипты выполняются на сервере и генерируют HTML, который посылается клиенту.
В настоящее время PHP широко применяется не только для непосредственного создания динамических сайтов, но и для написания инструментов и средств web-разработки. На данном языке создано большое количество всевозможных фреймворков и готовых систем управления контентом (всевозможных CMS и CMR).
Описание модулей серверной части программы и их взаимодействие
Реализация сайта требует разработки общей структуры сайта, определяющей, что, где и на каких страницах будет расположено.
Рисунок 2.1 – Структурная схема сайта
Каждый ресурс Интернета содержит несколько тематических рубрик, соединенных между собой гиперсвязями. Как правило, ссылки на все разделы сайта с краткими анонсами их содержимого приводится на первой, так называемой стартовой странице, которой присваивается имя index.htm (.html) или как в нашем случае index.php, так как основой создания сайта служит язык php. Если тематические рубрики содержат собственные подразделы, каждая из них также имеет свою стартовую страницу, называющуюся index.html.
Логическая структура сайта – это подобный набор тематических рубрик с распределенными по соответствующим разделам документами и заранее спроектированными гиперсвязями между всеми страницами ресурса.
Структурная схема сайта показана на рисунке (Рисунок 2.1).
Каждая страница ресурса представлена отдельным php модулем.
Так главная страница – модуль index.php. Страница «О Магазине» - модуль about.php
Несмотря на различное назначение и наполнение разных страниц и используемых для их формирования модулей, каждая из них содержит заголовок, меню и подвал сайта.
Для отображения данных подразделов страниц информационного ресурса имеет смысл вынести их формирование в отдельные модули и подключать их по мере необходимости.
Так модуль header.php – используется для показа меню системы и для вывода заголовка сайта, footer.php – для отображения подвала.
Для контроля пользовательского входа в систему применяется механизм сессий.
Для отслеживания авторизации пользователей и их прав в системе используется механизм сессий. Сессии в PHP представляют из себя механизм сохранения на стороне сервера информации о компьютере клиента.
Сессии – это группы переменных, которые хранятся на сервере, но относятся к одному уникальному посетителю. Повторю, это ключевой момент: сессии хранятся на сервере.
Для того, чтобы обеспечить взаимодействие каждого посетителя с его данными из его сессии используется файл cookie, команду создать который PHP даёт сам, вам об это беспокоится не нужно. Этот cookie имеет значение только для сервера и не может быть использован для получения данных о пользователе.
На сервере данные сессии хранятся в текстовом файле, и они доступны в программе PHP в массиве $_SESSION. Чтобы сохранить переменную в сессии нужно присвоить ей значение в этом массиве.
Для проверки был ли осуществлен вход пользователя в систему и с какими правами, создадим метод Auth в модулях UserController.php и User.php, вызываемый перед началом обработки каждого скрипта или вывода страницы сайта.
В модуле UserController, «action» для страницы «Вход на сайт», содержится следующий код:
public function actionLogin()
{
$email = false;
$password = false;
if (isset($_POST['submit'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$errors = false;
if (!User::checkEmail($email)) {
$errors[] = 'Неправильный email';
}
if (!User::checkPassword($password)) {
$errors[] = 'Пароль не должен быть короче 6-ти символов';
}
$userId = User::checkUserData($email, $password);
if ($userId == false) {
$errors[] = 'Неправильные данные для входа на сайт';
} else {
User::auth($userId);
header("Location: /cabinet");
В этом коде нас интересует параметр User::auth($userId);
Метод «auth» предназначен для запоминания пользователя и состоит из одной строки, что находится в User.php:
$_SESSION['user'] = $userId;
В этом методе используется механизм сессий: для того что бы воспользоваться сессий, нам нужно вызвать функцию «session_start();» которая, в свою очередь, находится в «index.php» для облегчения добавления новых «Action» модулей в код системы. Далее сайт будет пользоваться сессий при помощи суперглобального массива «$_SESSION». В этот массив записана переменная «[‘user’]» которая содержит идентификатор авторизированного пользователя: «$userId;».
Права администратора выдаются через БД сайта. Необходимость проверки пользователя на права администратора возникает только в том случае, если пользователь пытается войти в админпанель сайта. Для проверки пользователя был создан моудль AdminBase.php с абстрактным классом AdminBase. В модуле AdminBase.php содержится следующий код:
abstract class AdminBase
{
public static function checkAdmin()
{
$userId = User::checkLogged();
$user = User::getUserById($userId);
if ($user['role'] == 'admin') {
return true;
}
die('Access denied');
}
}
Здесь идет проверка авторизации пользователя. Код «$userId = User::checkLogged();» используется для оной проверки. Если же пользователь не авторизирован то он будет переадресован на страницу входа.
Код «$user = User::getUserById($userId);» получает информацию о текущем пользователе. Если роль текущего пользователя «admin» - он получает доступ к админпанели:
« if ($user['role'] == 'admin') {
return true;
}»
В противном случае сайт не дает доступ к админпанели сайта и выводит сообщение о закрытом доступе:
« die('Access denied');»
Также для организации связи с базой данных и получения или добавления в нее информации необходимо установить соединение с сервером базы данных. Связь с базой данных устанавливается при помощи определенных параметров, характеризующих соединение. Для упрощения и параметризации организации связи с базой данных системы подготовим модуль db_params.php, в котором определим параметры конфигурации соединения. Исходный код данного модуля:
<?php
return array(
'host' => 'localhost',
'dbname' => 'phpshop',
'user' => 'root',
'password' => '',
);
?>
Описание структуры базы данных и ее функций
После проработки структуры сайта и разработаем базу данных системы. Сначала необходимо подготовить инфологическую модель базы данных.
Инфологическая модель предметной области представляет собой описание структуры и динамики предметной области, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое.
Описание каждой сущности производится при помощи данных, называемых атрибутами или свойствами сущности. Атрибуты, как правило, представляют собой определения в высказывании о сущности и для их обозначения, используют имена существительные естественного языка. Сущности имеют связи друг с другом при посредстве включенных в них атрибутов. Каждое объединение атрибутов, составляющих описание одного реального проявления сущности, представляет из себя экземпляр сущности. Прочими словами, экземпляры сущности – это ее реализации, которые отличаются друг от друга и допускают однозначную идентификацию.
Каждый из атрибутов сущности имеет домен. Домен – это некоторое определенное выражение, описывающее значения, которые может принимать данный атрибут. Другими словами, домен – это определенная область возможных значений атрибута. На информационном уровне моделирования данных сопоставление домена атрибуту носит общий характер. К примеру, текстовый атрибут, числовой атрибут, бинарный, дата или "не определен".
Одним из главных компьютерных способов распознавания сущностей в базе данных является присвоение сущностям идентификаторов. Идентификатор сущности также называется ключом.
Построим описание атрибутов сущностей разрабатываемой системы.
Описание сущности Категории (Таблица 3.1).
Таблица 3.1 – Атрибуты сущности Категории
Атрибут |
Ключ |
Значение |
Домен |
Код категории |
+ |
Идентификатор записи |
Число |
Наименование |
Наименование категории |
Текст |
Описание сущности Продукты (Таблица 3.2).
Таблица 3.2 – Атрибуты сущности Продукты
Атрибут |
Ключ |
Значение |
Домен |
Код продукта |
+ |
Идентификатор товара |
Число |
Название |
Наименование товара |
Текст |
|
Категория |
Категория товара |
Число |
|
Код |
Код товара |
Число |
|
Цена |
Цена товара |
Число |
|
Наличие |
Наличие товара на складе |
Число |
|
Марка |
Марка товара |
Текст |
|
Описание |
Описание товара |
Текст |
|
Новизна |
Обозначение новых товаров |
Число |
|
Рекомендация |
Обозначение рекомендованных товаров |
Число |
|
Статус |
Обозначение статуса товаров |
Число |
Описание сущности Пользователь (Таблица 3.).
Таблица 3.3 – Атрибуты сущности Пользователь
Атрибут |
Ключ |
Значение |
Домен |
Код пользователя |
+ |
Идентификатор записи |
Число |
Имя |
Имя пользователя |
Текст |
|
|
Email пользователя |
Текст |
|
Пароль |
Пароль пользователя |
Текст |
|
Роль |
Роль пользователя |
Текст |
Описание сущности Заказы (Таблица 3.4).
Таблица 3.4 – Атрибуты сущности Заказы
Атрибут |
Ключ |
Значение |
Домен |
Код заказа |
+ |
Идентификатор заказа |
Число |
Имя |
Имя пользователя |
Текст |
|
Номер телефона |
Номер телефона пользователя |
Число |
|
Комментарий |
Комментарий пользователя к сделанному заказу |
Текст |
|
Код пользователя |
+ |
Идентификатор записи |
Число |
Дата |
Дата заказа |
Число |
|
Марка |
Марка товара |
Текст |
|
Продукты |
Идентификатор товара и их количество |
Число |
|
Статус |
Обозначение статуса товаров |
Число |
На основе построенных описаний сущностей и их атрибутов построим схему базы данных, представленную далее (Рисунок 3.1).
Рисунок 3.1 – Схема базы данных
Для доступа и управления данными в программном комплексе системы интернет магазина «BABYLAND.RU», на уровне бизнес-логики приложения используются хранимые процедуры MySQL.
При помощи данных процедур организовывается управление данными, добавление записей в таблицы, удаление записей, проведение комплексных изменений в нескольких таблицах системы путем использования транзакций.
Приведем пример кода «save» для процедуры «order»:
public static function save($userName, $userPhone, $userComment, $userId, $products)
{
$db = Db::getConnection();
$sql = 'INSERT INTO product_order (user_name, user_phone, user_comment, user_id, products) '
. 'VALUES (:user_name, :user_phone, :user_comment, :user_id, :products)';
$products = json_encode($products);
$result = $db->prepare($sql);
$result->bindParam(':user_name', $userName, PDO::PARAM_STR);
$result->bindParam(':user_phone', $userPhone, PDO::PARAM_STR);
$result->bindParam(':user_comment', $userComment, PDO::PARAM_STR);
$result->bindParam(':user_id', $userId, PDO::PARAM_STR);
$result->bindParam(':products', $products, PDO::PARAM_STR);
return $result->execute();
}
Данная процедура используется для сохранения заказа в базу данных.
Описание структуры клиентской части
Описание интерфейса «Обычный пользователь»
Начало работы начинается с главной страницы сайта (Рисунок 4.1).
Рисунок 4.1 – Главная страница сайта
Для получения доступа к функционалу пользователя, необходимо воспользоваться кнопкой вход, которая направит пользователя на форму запроса данных для входа в систему, после использования которой пользователя перенаправит на страницу Кабинет (Рисунок 4.2).
Рисунок 4.2 – Кабинет обычного пользователя
Появившийся новый пункт меню Редактировать данные служит для изменения имени пользователя или пароля. Для завершения работы необходимо использовать кнопку Выход.
Описание интерфейса «Администратор»
Если воспользоваться входом в систему под аккаунтом администратора меню системы магазина примет следующий вид (Рисунок 4.3).
Рисунок 4.3 – Меню администратора
В данном виде меню появится пункт Управление. При помощи данного пункта администратор системы имеет возможность вносить изменения в справочники системы, регистрировать новые товары, назначать им категории.
Пример работы с «Управлением товарами» приведен на рисунке (Рисунок 4.).
Рисунок 4.4 – Справочник товаров
Кнопка «Добавить товар» осуществляет переход на форму запроса и добавления новых товаров в список. (Рисунок 4.).
Рисунок 4.5 – Форма добавления нового товара
Кнопка «Х», удаляет из списка определенный товар.
Подобным образом построена работа с прочими справочниками системы.
Для перемещения и управления функционалом необходимо использовать систему меню информационной системы (Рисунок 4.6).
Рисунок 4.6 – Меню информационной системы.
Для входа в систему служит кнопка вход, для регистрации – Регистрация. По кнопке регистрация происходит переход на форму регистрации в системе (Рисунок 4).
Рисунок 4.7 – Форма регистрации
Для зарегистрированных пользователей, а так же гостей, доступна возможность покупки товаров. Для заказа товара достаточно нажать на кнопку «В корзину» (Рисунок 4.8).
На данной странице нужно выбрать интересующий товар и нажать кнопку «В корзину», система добавит товар в корзину а пользователь сможет дальше просматривать интернет магазин.. По умолчанию выводится список популярных и рекомендуемых товаров. Для приобретения товара необходимо перейти на вкладку «Корзина» и воспользоваться кнопкой «Оформить заказ», располагаемой под выбранными товарами (Рисунок 4.9).
Заключение
В ходе выполнения данной работы были решены следующие задачи
- дано общее описание автоматизируемого объекта;
- построена модель базы данных;
- спроектировано и реализовано приложение для работы и управления созданной базой данных с применением web-технологий.
В процессе выполнения работы была создана база данных, с применением среды MySQL. Реализация проекта велась с применением языков CSS, HTML, PHP, а также м использованием языка SQL запросов для обращения и изменения информации в связанной базе данных системы.
Результатом работы явилось достижение целей:
- закрепление теоретического материала по дисциплинам, связанных с изучением баз данных;
- практические навыки создания web-ресурса с применением языка программирования PHP.
Разработана информационная система интернет магазина «BABYLAND.RU». Система создана с применением современных средств и технологий, имеет адаптивный дизайн, проверена и протестирована для отображения на мобильных и десктопных устройствах.
Литература
- Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. - СПб.: БХВ-Петербург, 2009. - 528 c.
- Вадим Дунаев. HTML, скрипты и стили. BHV, Санкт-Петербург, 2015. ISBN 978-5-9775-3317-1.
- Н. Закас, Джереми Мак-Пик, Джо Фосетт. Ajax для профессионалов. Перевод: Александр Киселев. Символ, Санкт-Петербург, 2015. ISBN 978 5 93286-081-6.
- К. Блессинг, Роб Черни, К. Шмитт. Применение Web-стандартов CSS и Ajax для больших сайтов. Корона-Век, Санкт-Петербург, 2011. ISBN 978 5 7931-0844-7.
- Adobe Dreamweaver CS6. Официальный учебный курс. Эксмо, Москва, 2014. ISBN 978-5-699-69655-0.
- Чои Вин. Как спроектировать современный сайт. Питер, Санкт-Петербург, 2011. ISBN 978-5-459-00579-0.
- А. Годин, К. Джонсон, К. Уоррен, М. Уэбер, Брайан Хоган. Книга веб-программиста: секреты профессиональной разработки веб-сайтов. Питер, Санкт-Петербург, 2013. ISBN 978-5-459-01510-2.
- Алан Купер, Дэйв Кронин, Кристофер Носсел, Роберт Рейман. Алан Купер об интерфейсе. Основы проектирования взаимодействия. Символ, Санкт-Петербург, 2015. ISBN 978-5-93286-132-5.
- Стив Круг. Как сделать сайт удобным. Юзабилити по методу Стива Круга. Питер, Санкт-Петербург, 2010. ISBN 978-5-49807-515-0.
- Кирилл Сухов. HTML 5. Путеводитель по технологии. ДМК, Москва, 2013. ISBN 978-5-94074-910-3.
<?php
// Общие настройки
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
// Подключение файлов системы
define('ROOT', dirname(__FILE__));
require_once(ROOT.'/components/Autoload.php');
// Вызов Router
$router = new Router();
$router->run();
-
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="">
- <meta name="author" content="">
- <title>Главная</title>
- <link href="/template/css/bootstrap.min.css" rel="stylesheet">
- <link href="/template/css/font-awesome.min.css" rel="stylesheet">
- <link href="/template/css/prettyPhoto.css" rel="stylesheet">
- <link href="/template/css/price-range.css" rel="stylesheet">
- <link href="/template/css/animate.css" rel="stylesheet">
- <link href="/template/css/main.css" rel="stylesheet">
- <link href="/template/css/responsive.css" rel="stylesheet">
- <!--[if lt IE 9]>
- <script src="js/html5shiv.js"></script>
- <script src="js/respond.min.js"></script>
- <![endif]-->
- <link rel="shortcut icon" href="/template/images/ico/favicon.ico">
- <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/template/images/ico/apple-touch-icon-144-precomposed.png">
- <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/template/images/ico/apple-touch-icon-114-precomposed.png">
- <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/template/images/ico/apple-touch-icon-72-precomposed.png">
- <link rel="apple-touch-icon-precomposed" href="/template/images/ico/apple-touch-icon-57-precomposed.png">
- </head><!--/head-->
- <body>
- <div class="page-wrapper">
- <header id="header"><!--header-->
- <div class="header_top"><!--header_top-->
- <div class="container">
- <div class="row">
- <div class="col-sm-6">
- <div class="contactinfo">
- <ul class="nav nav-pills">
- <li><a href="#"><i class="fa fa-phone"></i> +7 999-911-91-91</a></li>
- <li><a href="#"><i class="fa fa-envelope"></i> Hoper34rus@yandex.ru</a></li>
- </ul>
- </div>
- </div>
- <div class="col-sm-6">
- <div class="social-icons pull-right">
- <ul class="nav navbar-nav">
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div><!--/header_top-->
- <div class="header-middle"><!--header-middle-->
- <div class="container">
- <div class="row">
- <div class="col-sm-4">
- <div class="logo pull-left">
- <a href="/"><img src="/template/images/home/logo.png" alt="" /></a>
- </div>
- </div>
- <div class="col-sm-8">
- <div class="shop-menu pull-right">
- <ul class="nav navbar-nav">
- <li><a href="/cart">
- <i class="fa fa-shopping-cart"></i> Корзина
- (<span id="cart-count"><?php echo Cart::countItems(); ?></span>)
- </a>
- </li>
- <?php if (User::isGuest()): ?>
- <li><a href="/user/login/"><i class="fa fa-lock"></i> Вход</a></li>
- <?php else: ?>
- <li><a href="/cabinet/"><i class="fa fa-user"></i> Аккаунт</a></li>
- <li><a href="/user/logout/"><i class="fa fa-unlock"></i> Выход</a></li>
- <?php endif; ?>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div><!--/header-middle-->
- <div class="header-bottom"><!--header-bottom-->
- <div class="container">
- <div class="row">
- <div class="col-sm-12">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- </div>
- <div class="mainmenu pull-left">
- <ul class="nav navbar-nav collapse navbar-collapse">
- <li><a href="/">Главная</a></li>
- <li class="dropdown"><a href="#">Магазин<i class="fa fa-angle-down"></i></a>
- <ul role="menu" class="sub-menu">
- <li><a href="/catalog/">Каталог товаров</a></li>
- <li><a href="/cart/">Корзина</a></li>
- </ul>
- </li>
- <li><a href="/about/">О магазине</a></li>
- <li><a href="/contacts/">Контакты</a></li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div><!--/header-bottom-->
- </header><!--/header-->
Autoload.php
<?php
/**
* Функция __autoload для автоматического подключения классов
*/
function __autoload($class_name)
{
// Массив папок, в которых могут находиться необходимые классы
$array_paths = array(
'/models/',
'/components/',
'/controllers/',
);
// Проходим по массиву папок
foreach ($array_paths as $path) {
// Формируем имя и путь к файлу с классом
$path = ROOT . $path . $class_name . '.php';
// Если такой файл существует, подключаем его
if (is_file($path)) {
include_once $path;
}
}
}
<div class="page-buffer"></div>
</div>
<footer id="footer" class="page-footer"><!--Footer-->
<div class="footer-bottom">
<div class="container">
<div class="row">
<p class="pull-left">Copyright © 2019</p>
<p class="pull-right">Курсовая</p>
</div>
</div>
</div>
</footer><!--/Footer-->
<script src="/template/js/jquery.js"></script>
<script src="/template/js/jquery.cycle2.min.js"></script>
<script src="/template/js/jquery.cycle2.carousel.min.js"></script>
<script src="/template/js/bootstrap.min.js"></script>
<script src="/template/js/jquery.scrollUp.min.js"></script>
<script src="/template/js/price-range.js"></script>
<script src="/template/js/jquery.prettyPhoto.js"></script>
<script src="/template/js/main.js"></script>
<script>
$(document).ready(function(){
$(".add-to-cart").click(function () {
var id = $(this).attr("data-id");
$.post("/cart/addAjax/"+id, {}, function (data) {
$("#cart-count").html(data);
});
return false;
});
});
</script>
</body>
</html>
- Управление мотивацией сотрудников на предприятиях ГиРБ
- Педагогический авторитет преподавателя
- Разработка сайта библиотеки MyLibrary
- Автоматизация учета повременной оплаты труда
- Конфликтные ситуации в группе и психологические методы их профилактики и регулирования (Конфликт: понятие, сущность, стадии развития)
- Теоретические основы деятельности спортивной организации
- Жизненный цикл проекта
- Маркетинговая деятельность банков по продвижению через спонсорство в спорте на примере банка ПАО ВТБ.
- Основные этапы развития инновационного проектного менеджмента
- Технологии основной и дополнительной оплаты труда персонала в различных секторах экономики
- Корпоративная культура организации и управление ее персоналом (Понятие и сущность корпоративной культуры)
- Сайт магазина «Цветы СПБ