Разработка интернет-сайта с использованием фреймворка Angular Java-Script, библиотек Jquery и Modernizr

Автор: Картабаева Б.Б., Бегалин А.Ш.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Основной раздел

Статья в выпуске: 5 (11), 2016 года.

Бесплатный доступ

В данной статье приводится описание процесса разработки и использования интернет-сайта на конкретном примере с использованием фреймворка Angular Java-Script (AngularJS), библиотек jQuery и Modernizr.

Web-сайт, модуль контроллера сайта, sql запрос

Короткий адрес: https://sciup.org/140268915

IDR: 140268915

Текст научной статьи Разработка интернет-сайта с использованием фреймворка Angular Java-Script, библиотек Jquery и Modernizr

В последнее время рост и развитие большинства организаций стало невозможным без динамического использования глобально-информационной сети Интернет. Во многом это происходит благодаря значительному росту числа пользователей сети, а также непосредственному совершенствованию Интернета как канала маркетинга и рекламы.

Созданная программа единого информационного пространства в виде WEB-сайта на примере фармацевтической компании КФ АО «Интерфарма-К» с использованием фреймворка Angular Java-Script (AngularJS) [1], библиотек jQuery [2] и Modernizr [3].

Структура сайта

WEB-сайт фармацевтической компании КФ АО «Интерфарма-К» состоит из четырнадцати основных файлов, четыре из которых имеют семь взаимосвязанных файлов, в соответствии со схемой 1.

Схема 1. Структура сайта

Описание программных моделей

Для создания программных модулей используется шаблон проектирования модель-представление-контроллер (MVC) [4]. Идея базируется на разделении бизнес логики и пользовательских интерфейсов.

Шаблон «Регистрация» - это модель, хранимая в сгенерированном файле, которая служит идентификатором [5]. Данная особенность позволяет осуществить перераспределение прав между пользователями системы и настроить маршрутизатор страничных путей.

Модель включает подключаемые файлы и маршрутизатор:

$surname = mb_convert_case(trim_strip($_POST['surname']), MB_CASE_TITLE, 'UTF-8'); /* Фамилия */

$name = mb_convert_case(trim_strip($_POST['name']), MB_CASE_TITLE, 'UTF-8'); /* Имя */

$mail = trim_strip($_POST['mail']); /* Емайл */

$cellular = trim_strip($_POST['cellular']); /* Номер телефона */

$password = trim_strip($_POST['password']); /* Пароль */ strlen($name) < 2 || strlen($name) > 60

|| preg_match(7(?=A.{8,30}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z]).*$/u', $password) || strlen($password) < 8 || strlen($password) > 30) { /* Валидация пользователя */

Шаблон «Авторизация» - это модель, хранимая в сгенерированном файле, которая создает сессию на сайте или перенаправляет посетителя на модель, отвечающую за регистрацию в случае ошибки входа в систему. Сессия активна до момента пока не будет закрыт браузер. Все сессионные данные клиента при авторизации хранятся во временной папке сервера в зашифрованном формате md5. Данный вид представляет собой 128-битный алгоритм хеширования [6].

Модуль контроллера сайта состоит из маршрутизатора подключаемого к модели регистрации. Маршрут генерируется на основе анализа URL сайта в адресной строке браузера, начиная от определения предполагаемого языка пользователя и заканчивается идентификатором страницы с положительными значениями.

$dir_curr = 'inc/pages/'; /* Каталог с файлами */

$dir = scandir($dir_curr); if (is_array($dir)) foreach ($dir as $name) { if ($name === '.' or $name === '..' or is_dir($dir_curr . $name)) continue;

if (preg_match('/A'. $curr . '(\.inc)?\.php/i', $name)) php */

$bool = true; /* Совпадение найдено */ return $res = $curr; }}} if ($bool) return $res; /* Показ файла */ return pages($split);

Шаблон «Корзина» - это модель, хранимая в сгенерированном файле, которая посылает асинхронный запрос к базе данный на получение информации о пользователе. Оформление товаров, возможно, осуществлять только авторизованным пользователям. Этап действий проверки шаблона «Корзина» базируется на следующих шагах:

  • 1.    Проверка пользователя на авторизацию, а также уровень доступности (администратор, покупатель);

  • 2.    Проверка корзины на наполненность товарами;

  • 3.    Получение идентификаторов товаров, хранимых в временном хранилище браузера;

  • 4.    Отправка SQL [6] запроса на выборку необходимых товаров, присутствующих в корзине;

  • 5.    Проверка SQL запроса на корректность;

  • 6.    Вывод товаров, а также подсчет общей суммы к оплате.

Кроме всего прочего имеется возможность увеличения или уменьшения количества товаров без осуществления перезагрузки системы, а также удаление определенного товара из корзины.

Шаблон «Прайс-лист» - это модель, хранимая в сгенерированном файле, которая посылает асинхронный запрос к базе данный на получение списка продукции. В случае возникновения ошибок, сформируется исключение на уровне ядра контроллера MVC, которое заблокирует доступ к системе. Данная особенность позволит исключить SQL инъекции [6] способные навредить WEB-сайту.

$caption_cr = 'Прайс-лист'; /* Заголовок навигации */ if ($level[0]['id'] !== 0) { /* Если открыт каталог, а не весь список */

Удаление нового товара из прайс-листа происходит, через скрытие товара, от покупателей. Данная процедура необходима в связи с тем, что, в случае единичной и более покупок товара, происходит ссылочное объединение идентификатора товара с идентификатор покупателя. Поэтому в случае полного удаление будет вызвано критическое исключение с возникновением нецелостности базы данный сайта. Что может привести к непредвиденным ситуациям, позволяющим произвести взлом сайта, через SQL инъекции.

return false;}if (deleteT_arr[1] == 9) { /* Если второй элемент массива будет равен 6, это будет означать, что список товаров не найден */ deleteT_res_err('Данные о товаре не найдены ...');

return false;} if (deleteT_arr[1] == 1) { /* Если второй элемент массива будет равен 1, это будет означать, что заказ принят */ blocker_text.fadeOut(150, function() {

$(this).addClass('invert').text('Товар успешно удален

Модуль «Поиск товаров» - это отдельно исполняемый файл посылающий параметры поиска в модуль «Прайс-лист». Далее осуществляется дополнение ранее созданного SQL запрос подзапросами с необходимыми данными для поиска. Все данные посылаются методом POST с предварительной проверкой на корректность в асинхронном режиме. Данная процедура направлена на дальнейшее безопасное сохранение параметров на стороне браузера клиента. Итоговым результатом является страница с найденными товарами, которая при повторных перезагрузках будет хранить необходимые данные в сессии как зарегистрированного, так и обычного пользователя.

if ($_SERVER['REQUEST_METHOD'] === 'POST') { /* Метод 'POST' */ if ($val_search !== '') {

$count = 2; /* Количество хлебных крошек */

$search = $val_search; /* Искомые товары */

$page_head = $search; /* Хлебная крошка */

$sql_5 = "AND price.nomenclature LIKE '%$page_head%'";

} else if (empty($_POST['section_0'])) { /* Не выбран весь список */

$in = 0; foreach ($arr_catalogs as $key => $val)

Руководство пользователя

Запуск сайта не требует наличия специальных установок, достаточно располагать доступом к интернету, а также WEB-браузером.

Доступ и разграничение прав доступа

Для осуществления регистрации на сайте необходимо нажать «Регистрация» в верхнем меню навигации.

Электронная форма для регистрации пользователя на сайте имеет вид в соответствии с рисунком 1.

Рисунок 1. Электронная форма регистрации

В случае успеха авторизации сайт автоматически перенаправит пользователя на страницу авторизации. По умолчанию пользователю присваиваются права полноценного покупателя.

Введенный логин, которым является электронный адрес и пароль необходимо отправить на аутентификацию системе безопасности сайта. В случае если пользователь зарегистрирован на сайте, и введенные им логин и пароль прошли необходимую проверку, то произойдет авторизация в системе с последующим перенаправлением в личный кабинет. В обратном случае будет считаться, что произведено неверное введение логина и/или пароля и сайт выдаст сообщение об ошибке.

Работа с каталогом товаров

Каталог товаров на сайте представлен в виде прайс-листа, расположенный в правой части сайты. Доступ к товарам осуществляется путем нажатия на нужную категорию из списка имеющихся. Также имеется возможность просмотра всего списка целиком.

Информация о определенных товарах в разделе представлена в виде блоков, отсортированных в алфавитном порядке.

Просмотр товаров, которые поступили в период последних тридцати дней производится при помощи нажатия на ссылку «Последнее поступление», которая расположена в верхней части сайта.

Просмотр всех имеющихся на текущий момент скидок, осуществляется при помощи нажатия на ссылку «Скидки», которая расположена в верхней части сайта. По умолчанию поиск скидок происходит от 0 до 100 процентов, однако имеется возможность через форму, расположенную над блоками с товарами выставить собственный интервал скидки.

Просмотр наиболее часто покупаемого товара, осуществляется при помощи нажатия на ссылку «Лидеры продаж», которая расположена в верхней части сайта. По умолчанию имеется возможность просмотра списка, состоящего из десяти товаров.

Поиск среди находившихся в наличии товаров возможно осуществить через поисковую форму, расположенную под логотипом компании.

Данная поисковая форма оснащена интеллектуальной процедурой удаления текста в поле ввода при помощи клавиши «Esc» или нажатия на пиктограмму в правой части поля, а также запоминающим действием, которое позволяет запоминать поисковую комбинацию пользователя при перезагрузке страницы.

Поиск товаров по параметрам расположен в правой части сайта под прайс-листом. Имеется возможность поиска в зависимости от указанного диапазона цены и/или скидки, а также отфильтровать результаты по необходимым категориям. Радел оснащен запоминающим действием, которое позволяет запоминать указанные параметры пользователя при перезагрузке страницы.

Оформления товаров

Покупку определенных товаров возможно осуществлять, только 8

зарегистрированным пользователям системы, которые обладают правами не ниже «покупатель». Для добавления интересующих товаров в корзину следует в блоке товара нажать на кнопку «В корзину».

После добавления товара в корзину, раздел товара помещается в стек на возможность удаления, который имеет объем памяти в соответствии со свободным объемом виртуального пространства сайта, а кнопка «В корзину» заменяется на «Из корзины».

Административная панель

Добавление нового товара возможно осуществить, через нажатие кнопки «Добавить товар», которая доступна только администратору сайта и расположена на странице прайс-листа. Имеется возможность выбирать производителя, каталог к которому следует отнести новый товар, а также самостоятельно указать такие данные как, номенклатура, срок годности, цена, количество товара в наличии и скидку в случае если она имеется. Общий вид формы добавления новых товаров имеет вид, в соответствии с рисунком 2.

Добтаегь toeep

BevOepti/Me лриилкнЭи/легш *

ftoouMOOumeAb                                           •

  • •V^u^e 6vflHtiNv*e npo^^M^fiw

Siwrititwmp *длн1лог *

АоЮлр/лшрнм                                            *

зуолиепв всего tieedtime /повар *

HV'Mrjm» woihjmie „ямвл^

Vruwiww rpO* rodKVCTXK/ *

Дойавитк товар

Рисунок 2. Форма добавления нового товара

В заключении можно сказать, что единое информационное пространство в виде WEB-сайта на примере фармацевтической компании КФ АО «Интерфарма-К» позволяет оптимизировать работу по продаже медикаментов, а также осуществить полную автоматизация документооборота.

Список литературы Разработка интернет-сайта с использованием фреймворка Angular Java-Script, библиотек Jquery и Modernizr

  • Закас, Н. JavaScript для профессиональных веб-разработчиков. - СПб.: Питер. - 2015. - С. 144-189.
  • Фримен, А. JQuery для профессионалов. - ООО «И.Д. Вильямс». - 2013. - С. 428-513.
  • Сухов, К. HTML5. Путеводитель по технологии. - Изд.: ДМК Пресс. - 2013. - С. 29-35.
  • Чакон, С. Git для профессионального программиста / С. Чакон, Б. Штрауб. - СПб.: Питер. - 2016. - C. 50-71.
  • Сандерсон, С. ASP.NET MVC Framework. - ООО «И.Д. Вильямс». - 2010. - 36 p.
  • Агуров, П. ASP.NET. Сборник рецептов. - СПб.: БХВ-Петербург. - 2010. - С. 301-305.
  • Lockhart, J. Modern PHP. New Features and Good Practices. - O'Reilly. - 2015. - PP. 24-96.
Статья научная