47325

Автоматизация процесса продажи книг через сеть Интернет

Дипломная

Информатика, кибернетика и программирование

Раньше большинство сайтов разрабатывались исключительно с использованием HTML и CSS сейчас же в основном используются языки высокого уровня такие как PHP JvScript с применением MySQL для хранения информации в базе данных. Для начала опишем основную схему работы сайта на PHP и MySQL с использованием в качестве Webсервера – pch. Сервер в ответ на этот запрос запускает интерпретатор PHP для выполнения скрипта. В данной дипломной работе производится проектирование и создание такой системы в составе административного приложения и приложения...

Русский

2013-11-28

4.43 MB

19 чел.

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего

профессионального образования

«СИБИРСКАЯ ГОСУДАРСТВЕННАЯ ГЕОДЕЗИЧЕСКАЯ

АКАДЕМИЯ»  (ГОУ ВПО «СГГА»)

Кафедра ______________________

(полное название выпускающей кафедры)

Дипломная работа (проект) соответствует установленным требованиям и направляется в ГАК для защиты

Заведующий кафедрой ________________(И.О.Ф.)

                                                                                             (подпись)

ДИПЛОМНАЯ РАБОТА (ПРОЕКТ)

080507 – Менеджмент организации

РАЗРАБОТКА И ВНЕДРЕНИЕ WEB-САЙТА

 

Выпускник ______________ А.И. Петров

                              (подпись)           

Руководитель_____________ С.С. Сидоров

                                (подпись)

Консультанты ____________ А.М. Иванов

  (подпись)

   _____________ С.К. Миронова

                      (подпись) 

Нормоконтролёр __________Л.М. Павлова

                               (подпись) 

Новосибирск  2013

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное общеобразовательное учреждение высшего

профессионального образования

«СИБИРСКАЯ ГОСУДАРСТВЕННАЯ ГЕОДЕЗИЧЕСКАЯ

АКАДЕМИЯ»  (ГОУ ВПО «СГГА»)

“УТВЕРЖДАЮ”

Зав. кафедрой ___________________

________________ (Ф.И.О.)

“ ____ ”_____________ 20  __г.

ЗАДАНИЕ

НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ

в форме ________________________________________

(бакалаврской работы, дипломного проекта, дипломной работы, магистерской диссертации)

Студенту(ке)_______________________________________________________

Группа___________Институт_________________________________________

Направление (специальность)  ________________________________________

                                                                                                    (код, наименование)

Код квалификации ________Степень или квалификация__________________

Тема ВКР__________________________________________________________

_________________________________________________________________________________________________________________________________

Руководитель_______________________________________________________

Ученое звание, ученая степень руководителя____________________________

Место работы, должность руководителя________________________________

__________________________________________________________________

Срок сдачи полностью оформленного задания на кафедру_________________

Задание на ВКР (перечень рассматриваемых вопросов):

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Вопросы экономики_________________________________________________

______________________________________________________________________________________________________________________________________

Вопросы безопасности жизнедеятельности______________________________

____________________________________________________________________________________________________________________________________

Перечень графического материала с указанием основных чертежей и (или) иллюстративного материала (формат А1): ______________________________

__________________________________________________________________

__________________________________________________________________

Исходные данные к ВКР (перечень основных материалов, собранных в период преддипломной практики или выданных руководителем)

__________________________________________________________________

Консультанты:

по экономике___________________________________________________

                                                          (ФИО, место работы и должность)

по вопросам безопасности жизнедеятельности__________________________

__________________________________________________________________

                                                    (ФИО, место работы и должность)

ГРАФИК ВЫПОЛНЕНИЯ ВКР

этапа

Этапы ВКР

Срок исполнения

1

Начало выполнения ВКР

2

Подбор литературы и исходных материалов

3

Выполнение исследовательских, экспериментальных, расчетных работ (нужное подчеркнуть)

4

Выполнение графических (иллюстративных) работ

5

Текстовая часть ВКР (указать ориентировочные названия разделов и конкретные сроки их написания)

6

Первый просмотр руководителем

7

Второй просмотр руководителем

8

Срок сдачи ВКР на кафедру

“___”____________ 200__ г.              Руководитель_____________________(подпись)

Консультанты _________________________________________________(ФИО, подпись)

________________________________________________________________(ФИО, подпись)

Задание принял к исполнению и с графиком согласен_____________________

(подпись студента)

СОСТАВ ДИПЛОМНОГО ПРОЕКТА

1. Задание на дипломный проект                           2 с..

2. Реферат                                                                 1 с.

3. Пояснительная записка                                     101 с.

РЕФЕРАТ

Иванов Иван Михайлович. Разработка и внедрение веб-сайта.

Место дипломирования: Сибирская государственная геодезическая академия.

Руководитель: канд. техн. наук, доцент Петров А.И. 2006 г., специальность 080502 «Экономика и управление на предприятии (геодезическое производство)», квалификация 65 – Экономист-менеджер.

101с., 1 табл., 30 рис., 16 источников, 1 приложение.

ИНТЕРНЕТ, АДМИНИСТРИРОВАНИЕ, WEB-СЕРВЕР, ПРОДАЖА, АВТОМАТИЗАЦИЯ, ИНФОРМАЦИОННАЯ СИСТЕМА

Целью дипломной работы является автоматизация процесса продажи книг через сеть Интернет.                                                     

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

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

Практическая значимость создания данной системы заключается в автоматизации процесса продаж книг с использованием сети Интернет.


СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………...8

1 ИСПОЛЬЗОВАНИЕ WEB-ТЕХНОЛОГИЙ В ДЕЯТЕЛЬНОСТИ КОММЕРЧЕСКИХ ПРЕДПРИЯТИЙ…………………………………………10

  1.  Современные тенденции развития……………………………………....10
  2.  Использование баз данных в web-технологиях………………………..12
  3.  Структурирование информации в базе данных…………………………14

  1.  АЛГОРИТМ СОЗДАНИЯ WEB-ПРИЛОЖЕНИЯ…………………….16
  2.  Описание технологии процесса создания web-сайта………………….16
  3.  Разработка схемы расположения на сайте…………………………….18
    1.  Информационная модель………………………………………………..18
    2.  Схема расположения информации……………………………………..19
  4.  Схема хранения информации в базе данных……………………………21
  5.  Разработка алгоритма обработки и передачи информации………….27
  6.  Разработка программных модулей……………………………………..28
  7.  Каскадные таблицы стилей………………………………………………33

  1.  ОПИСАНИЕ И ПРОЦЕСС СОЗДАНИЯ ПРОГРАММЫ……………35
  2.  Функциональное назначение программы……………………………..35
  3.  Описание логической структуры Интернет- магазина…………………39
  4.  Вызов и загрузка…………………………………………………………40
  5.  Входные и выходные данные……………………………………………42
  6.  Описание пользовательского интерфейса……………………………....43
  7.  Описание приложения для администратора сайта……………………52
  8.  Порядок работы с программой…………………………………………59
  9.  Методы тестирования web-приложения………………………………..60
    1.  Проверка на кросс платформенность…………………………………..60
    2.  Проверка скорости работы……………………………………………..62
    3.  Проверка работоспособности гиперссылок на сайте…………………65

  1.  ЭКОНОМИЧЕСКАЯ ЧАСТЬ…………………………………………..67
  2.  Расчет трудозатрат возникающих при разработке программного продукта…………………………………………………………………………67
    1.  Исходные данные…………………………………………………………68
    2.  Определение трудоемкости разработки программного обеспечения…68
    3.  Расчет затрат по созданию программного обеспечения………………71
  3.  Маркетинговое исследование рынка сбыта созданного программного продукта…………………………………………………………………………73
  4.  Экономическая эффективность………………………………………….73

  1.  ОХРАНА ТРУДА………………………………………………………...75
  2.  Вредные и опасные факторы при работе на ПК………………………75
  3.  Инженерно-технические и организационные мероприятия по охране труда……………………………………………………………………………..77

ЗАКЛЮЧЕНИЕ…………………………………………………………………80

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ………………………….81

ПРИЛОЖЕНИЕ А………………………………………………………………82

ВВЕДЕНИЕ

В последнее десятилетие благодаря бурному развитию Интернета прогрессирует и Web-программирование. Каждая уважающая себя компания уже имеет свой Web-сайт.

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

 Web-представительство — это виртуальный офис, где посетитель найдет информацию о компании, формы для оформления заказов, возможность осуществления электронных платежей, онлайн- консультации, подписку на рассылки и множество других полезных для ведения бизнеса сервисов.2) Наличие фирменного стиля (логотип компании, корпоративные цвета, элементы дизайна, ассоциирующиеся с деятельностью компании) в дизайне — отличительная черта Web-представительств.   

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

Задачи, которые решаются при наличии Web-сайта:

  1.  оповещение своих клиентов о новинках, интересных для них событиях;
  2.  сохранение справочной информации для своих потенциальных или уже существующих клиентов, либо для сотрудников одной корпорации;
  3.  прием заказов на товары и услуги;
  4.  осуществление электронных платежей.  

  1.  ИСПОЛЬЗОВАНИЕ WEB-ТЕХНОЛОГИЙ В ДЕЯТЕЛЬНОСТИ КОММЕРЧЕСКИХ ПРЕДПРИЯТИЙ
  2.  Современные тенденции развития

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

Итак, перечислим основные характеристики современного, профессионального сайта Интернет- магазина:

  1.  Четкое разделение товаров на категории.
  2.  Правильная вложенность товаров в категории, подкатегории и т.д.
  3.  Понятное оформление сайта.
  4.  Легкость поиска необходимой информации.
  5.  Быстрая скорость загрузки страниц.
  6.  Внутренняя перелинковка ссылок на сайте.
  7.  Правильное отображение страниц в разных браузерах, так называемая кроссбраузерность сайта.
  8.  Управление группами покупателей, для возможности распределения скидок, акций для постоянных клиентов.
  9.  Возможность управления ценами и наличием товаров.
  10.   Правильное описание характеристик товара.
  11.  Управление информационными страницами.
  12.  Контактная информация или форма обратной связи.

Возможности для покупателей:

  1.  Возможность делать заказ в Интернет- магазине.
  2.  Возможность редактирования своих адресных и контактных данных.
  3.  Возможность просмотра истории своих заказов и статуса их обработки.
  4.  Система для быстрого поиска и применяемые фильтры для нахождения необходимого товара по определенным критериям.
  5.  Скидки, дисконтные купоны.

В последнее время область «сайтостроения» пополнилась большим количеством новых технологий для создания Web-приложений. Раньше большинство сайтов разрабатывались исключительно с использованием HTML и CSS, сейчас же, в основном используются языки высокого уровня такие как PHP, JavaScript с применением MySQL для хранения информации в базе данных.

Для начала опишем основную схему работы сайта на PHP и MySQL , с использованием в качестве Web-сервера – Apach.

Apach – это HTTP-сервер, поддерживающий такие операционные системы как Linux, Microsoft Windows, MacOS, BSD, BeOS, Novell Netware. Web-сервер Apach позволяет подключать внешние модули для получения данных.

Схема работы Web-сайта приведена на рисунке 1.

Рисунок 1 – Схема работы Web-приложения

Рассмотрим поэтапно данную схему.

  1.  Пользователь при помощи браузера делает запрос IP-адреса сайта.
  2.  При запросе идет обращение к Web-серверу (в нашем случае Apach). Сервер в ответ на этот запрос запускает интерпретатор PHP для выполнения скрипта.
  3.  Далее посылается запрос в СУБД и возвращается ответ на него.
  4.  После этого завершающим этапом Web-сервер обрабатывает полученные данные от СУБД и отправляет ответ пользователю в виде HTML-страницы.  

 

  1.   Использование баз данных в web-технологиях

MySQL –  свободная система управления базами данных. Разработкой и поддержкой СУБД MySQL занимается компания Oracle. MySQL представляет собой сервер базы данных, который осуществляет доступ и хранение информации в ней.

Основные преимущества использования реляционной базы данных MySQL:

  1.  Легкость управления таблицами, их добавление, удаление, изменение к ней ключей и полей
  2.  Многопоточность – обслуживание интерфейса производится в одном потоке, а обработка данных – в другом
  3.  Гибкая система привилегий для разных пользователей базы данных
  4.  Быстрая система памяти
  5.  Поддержка SSL
  6.  Кеширование запросов
  7.  Поддержка основных видов кодировки (ANSI, Юникод)
  8.  Поддержка репликации серверов

Сама по себе сеть Интернет представляет собой огромное хранилище данных. Основными показателями производительности работы Web-сайта в сети является скорость передачи и обработки данных. СУБД которая используется в сети для работы с базами данных – MySQL, так как она отвечает требованиям скорости и надежности.

  1.  Структурирование информации в базе данных

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

Реляционная база данных – это совокупность взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа.3) 

Главными особенностями выбора реляционной базы данных для Web-приложений является, то, что объекты хранятся в виде набора двумерных таблиц. Другими словами таблица имеет определенное количество столбцов, что очень удобно, так как структура таблицы находящейся в базе данных известна заранее, а вот количество строк не ограничено и может добавляться по мере необходимости. Например, добавление новых товаров, новых пользователей (регистрация), новостных материалов на сайте. Управление хранящимися данными выполняется при помощи СУБД MySQL.

Логическая структура базы данных заключается в отделение пользовательского интерфейса СУБД от  физического представления. Для реализации данной структуры в наше время чаще всего используют трехуровневую архитектуру баз данных.

Трехуровневая структура включает в себя:

  1.  Внешний уровень
  2.  Концептуальный уровень
  3.  Внутренний уровень

На рисунке 2 продемонстрирована структура трехуровневой СУБД.

Рисунок 2 – структура трехуровневой СУБД

На внешнем уровне пользователю предоставляется интерфейс для работы с данными. На нем задаются права доступа и приоритеты пользователей.

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

На внутреннем уровне СУБД и операционная система принимают и обрабатывают данные.

  1.  АЛГОРИТМ СОЗДАНИЯ WEB-ПРИЛОЖЕНИЯ
  2.  Описание технологии процесса создания web-сайта

В данной дипломной работе мы создали Web-сайт по продаже книг «KNIGI-SHOP.RU», что является нашей предметной областью. Сайт находится по адресу http://www.knigi-shop.ru на локальном сервере компьютера.

Web-сайт «KNIGI-SHOP.RU» разработан как интернет-магазин с возможностью приобретения товаров. Пользователи должны иметь возможность просматривать предоставляемые товары, разделенные по категориям. Кроме того, пользователи должны иметь возможность выбирать позиции из перечня товаров с целью дальнейшего приобретения. Выбираемые позиции необходимо фиксировать.

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

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

В данной дипломной работе производится проектирование и создание такой системы в составе административного приложения и приложения для покупателей с использованием языка программирования PHP и СУБД MySQL.

Для администратора web-приложения был разработан удобный интерфейс администрирования. С его помощью можно добавлять, изменять, удалять информацию о новых товарах и уже имеющихся товарах в магазине.  Также на сайте есть возможность оповещения своих клиентов о новинках и акциях Интернет- магазина. База данных содержит всю необходимую информацию, а приложение осуществляет необходимые операции с этой базой.

Для разработки был использован хорошо зарекомендовавший себя набор дистрибутивов – Денвер, который содержит такие программные продукты:

• сервер баз данных MySQL;

• web-сервер Apache;

• язык PHP.

 

Денвер (от сокр. Д.н.w.р или ДНВР — джентльменский набор Web-разработчика) — набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows.4)

 Главным инструментом, интегрированной средой разработки или IDE, которая позволит редактировать HTML, Javascript, CSS, PHP, в нашем проекте будет -  CMS Webasyst. Достоинство этой CMS в том, что она позволяет наращивать любой функционал при помощи плагинов, которых очень много. Программное обеспечение WebAsyst – это набор интернет-приложений (скриптов) для организации работы магазина и электронной коммерции в сети.

  1.    Разработка схемы расположения на сайте
    1.  Информационная модель

Информационное обеспечение Web-сайта выполняет задачу  постоянного пополнения и обновления информации, обновление цен и наличия товаров на складе, добавление новых товаров, поддержание базы данных, управление интерактивными системами сайта (новостные ленты, голосование, FAQ и т.д. ).

Информационная модель Web-представительства представлена в виде диаграммы на рисунке 3:

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

 

  1.  Добавление новой информации, работа с товарами

III. БД

IV. Сайт

Рисунок 3- Информационная модель Web-представительства

I этап.

На первом этапе создаются уникальные статьи, новые новости, добавляется или обновляется информация о товарах компании.   

II этап.

На втором этапе данные заносятся в административную панель управления сайта.

III этап.

На третьем этапе данные перенаправляются в базу данных Shop.

IV этап.

На четвертом этапе данные отправляются на сайт.

  1.  Схема расположения информации

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

Схема расположения информации на сайте представлена на Рисунке 4.

  1.  Логотип компании
  1.  Дополнительная информация
  1.  Управление корзиной
  1.  Выбор валюты
  1.  Верхнее меню

  1.  Меню категорий товаров

10. Блок поиска

11. Основной блок вывода информации

  1.  Информационное меню
  1.  Блок новостей
  1.  Блок голосования

12. Нижнее меню

13. Информация о создателе

Рисунок 4 – Схема расположения информации на сайте

  1.  Логотип компании – изображение названия компании или торговой марки.
  2.  Дополнительная информация – дополнительная информация для клиентов: телефоны, адреса компании.
  3.  Управление корзиной – корзина с товарами.
  4.  Выбор валюты – блок выбора валюты, с помощью которой будет выводиться стоимость товаров.
  5.  Верхнее меню – так называемое горизонтальное или навигационное меню сайта.
  6.  Меню категорий товаров – категории предлагаемых товаров.
  7.  Информационное меню – дополнительная информация для осуществления заказа.
  8.  Блок новостей – лента последних актуальных новостей компании.
  9.  Блок голосования – интерактивное голосование, необходимое для мониторинга статистических данных.
  10.   Блок поиска – поиск товаров по ключевым фразам.
  11.   Основной блок вывода информации – блок для вывода информации по переходу со всех ссылок на сайте.
  12.   Нижнее меню – горизонтальное нижнее меню сайта.
  13.   Информация о создателе – контактная информация об авторе сайта.

  1.   Схема хранения информации в базе данных

В данном дипломном проекте была создана база данных SHOP. Подключение к базе данных производится через веб- приложение phpMyAdmin.

 PHPMyAdminвеб- приложение с открытым кодом, написанное на языке PHP и представляющее собой веб- интерфейс для администрирования СУБД MySQL .5) С помощью данного веб- приложения можно осуществлять доступ к базам данных через браузер, отправлять SQL-запросы, просматривать и изменять содержимое базы.

Общие настройки базы данных:

Тип базы данных

mysql

Имя хоста

localhost

Логин

root

База данных

shop

Взаимодействие с базой данных делится на два уровня: системный и прикладной.

Системный уровень

Системный уровень отвечает за установку и поддержку соединения с базой данных, отправку SQL-запросов и получение результатов на данные запросы. Работа СУБД зависит от типа сервера базы данных, в нашем случае адаптер сервера имеется только для MySQL.

Прикладной уровень

Прикладной уровень технически не зависит от какой-либо СУБД. Скажем так, что код выполняемого приложения может не взаимодействовать непосредственно с MySQL, но так же правильно работать с применением других СУБД.

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

В Таблице 1 описана структура всех таблиц базы данных SHOP. Префикс всех таблиц приложения _SC.

Таблица 1 – Структура таблиц базы данных

Названия таблиц

Описание

SC_aff_commissions

Данные о комиссиях по партнерской программе

SC_aff_payments

Выплаты по партнерской программе

SC_aux_pages

Информационные страницы

SC_categories

Таблица категорий

SC_category_product

Связи между продуктами и доп. Родительскими категориями

SC_category_product_options__variants

Варианты доп. Характеристик в категории (для поиска)

SC_category__product_options

Доп. Характеристики, по которым можно осуществлять подбор товара

SC_config_settings

Настройки модулей. Основные настройки хранятся в таблице SC_settings

SC_countries

Страны

SC_currency_types

Валюты магазина

SC_custgroups

Группы покупателей

SC_customers

Покупатели

SC_customer_addresses 

Адреса покупателей

SC_customer_reg_fields 

Дополнительные поля в форме регистрации

SC_customer_reg_fields_values 

Значения доп. Полей в форме регистрации

SC_customer_reg_fields_values_quickreg 

Значения доп. Полей в форме регистрации в быстрой регистрации

SC_discount_coupons 

Купоны на скидку

SC_discussions 

Обсуждения продуктов

SC_divisions 

Разделы сайта

SC_division_access 

Настройки доступа к разделам сайта

SC_division_custom_settings 

Пользовательские настройки разделов (и блоков) сайта

SC_division_interface 

Служебная таблица модулей сайта

SC_htmlcodes 

Блоки html кода в шаблонах

SC_language 

Языки и их настройки (без переводов)

SC_linkexchange_categories 

Категории ссылок в разделе «Обмен ссылок»

SC_linkexchange_links 

Ссылки в разделе «Обмен ссылок»

SC_local 

Языковые переменные. Локализации магазина

SC_localgroup 

Группы локализаций

SC_modules 

Модули сайта и путь к файлу класса этого модуля

SC_module_configs 

Настройки модулей сайта

SC_news_table 

Новости магазина

SC_ordered_carts 

Корзины пользователей, которые уже оформили заказ

SC_orders 

Таблица заказов

SC_orders_discount_coupons 

Использованные купоны на скидку

SC_order_price_discount 

Использованные скидки (без купона)

SC_order_status 

Статусы заказов

SC_order_status_changelog 

История изменения статуса заказа

SC_payment_types 

Типы оплаты

SC_payment_types__shipping_methods 

Соответствие методов оплаты методам доставки

SC_products 

Продукты магазина

SC_products_opt_val_variants 

Список возможных вариантов значения доп. Характеристики

SC_product_list 

Списки продуктов (имена и id )

SC_product_list_item 

Списки продуктов (соответствие продукта списку)

SC_product_options 

Дополнительные характеристики продуктов

SC_product_options_set 

Соответствие доп. Характеристики, ее значения и продукта

SC_product_options_values 

Варианты доп. Характеристик

SC_product_pictures 

Изображения продуктов

SC_related_items 

Рекомендуемые товары

SC_rpost_zones 

Территориальные зоны для доставки (почты)

SC_settings 

Настройки

SC_settings_groups 

Группы настроек

SC_shipping_methods 

Способы доставки

SC_shopping_carts 

Временные корзины покупателей

SC_shopping_cart_items 

Содержимое корзин покупателей

SC_shopping_cart_items_content 

Доп. Характеристики содержимого корзин

SC_spmodules 

Справочник модулей оплаты и доставки

SC_spmodules_settings 

Настройки этих модулей

SC_subscribers 

Подписчики на новости

SC_system 

Версия и ID приложения

SC_tagged_objects 

Привязка тегов к объекту

SC_tags 

Теги

SC_tax_classes 

Виды налогов

SC_tax_rates 

Размер налогов

SC_tax_rates__zones 

Территориальные зоны налогов

SC_zones 

Территориальные зоны (области, республики и т.д.)

SC__module_payment_invoice_jur 

Данные для генерирования счетов

SC__module_payment_invoice_phys 

Данные для генерирования счетов

 

  1.  Разработка алгоритма обработки и передачи информации

Схема алгоритма обработки и передачи информации показана на рисунке 5:

Рисунок 5 – Схема обработки и передачи информации

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

  1.   Разработка программных модулей

Все программные модули на сайте интернет- магазина написаны на языках PHP, HTML, JavaScrit. Статьи, материалы, товары, покупатели и информация о них занесена в базу данных MySQL. Все модули расположены в директории published/SC/html/scripts/modules/ . Каждый модуль имеет свою поддиректорию с определенным набором файлов. В каждом модуле имеется свой XML-файл с описанием модуля. Имя этого файла имеет вид %connector.name_module%.xml. Таблицы, в которых хранится информация о модулях  - SC_modules и SC_module_configs.

Пример XML-файла модуля AdminScreens имеет вид:

<Connector>

<Class>

 <Name>AdminScreens</Name>

 <File>class.adminscreens.php</File>

 <Title>Admin screens</Title>

 <SingleInstallation>true</SingleInstallation>

 </Class>

</Connector>

Рассмотрим основные модули и соответствующие к ним классы, применяемые в интернет- магазине:

1. Testобщий модуль, который содержит функции и классы описывающие основные компоненты сайта, такие как:

- Каталог товаров (администрирование);

-  Настройка формы регистрации;

- Обсуждения продуктов;

- Настройки (администрирование);

- Дерево категорий;

- Валюты;

- Мой счет;

- Контактная информация;

- Адресная книга, ее добавление и изменение;

- Информация о заказе;

- Регистрация;

- Страны, области;

- Налоги;

- Гостевая книга;

- Группы пользователей;

- Экспорт и импорт товаров из CSV-файлов;

- Дополнительные характеристики товаров;

- Самые просматриваемые категории;

- Отчет по продуктам;

- Журнал авторизации пользователей;

- Настройка категорий.

Размещение: /test/class.test.php

2. Products – модуль содержащий настройки импорта и экспорта продуктов, интеграция экспорта и импорта прайс-листов, класс для работы с Яндекс-Маркетом и 1С.

Размещение: /products/class.products.php

3. Newsмодуль вывода ленты новостей на сайте.

Размещение: /news/class.newsmodule.php

4. Pollмодуль голосования на сайте.

Размещение: /poll/class.poll.php

5. Cart  - модуль корзины, добавляющий выбранные товары в корзину для каждого пользователя.

Размещение: /cart/class.cart.php

6. Affiliateprogramмодуль «Аффилиаты» - система управления сайтом.

Размещение:/affiliate_program/class.affiliate_program.php

7. Ordering – модуль отображения заказов.

Размещение:/ordering/class.ordering.php

8. Pricelistмодуль обработки и формирования прайс-листа.

Размещение:/products/pricelist/class.pricelist.php

9. Feedbackмодуль формы обратной связи на сайте.

Размещение:/feedback/class.feedback.php

  1.   Linkexchangeмодуль обмена ссылками на сайте.

Размещение:/linkexchange/class.linkexchange.php

  1.  Export2froogleмодуль выгрузки товаров в формате Froogle.

Размещение:/products/export2froogle/class.export2froogle.php

  1.  Yandexmarketмодуль выгрузки товаров в формате Yandex.

Размещение: /products/yandex.market/class.yandexmarket.php

  1.  Auxpagesмодуль отвечающий за создание, вывод всех страниц сайта.

Размещение: /auxpages/class.auxpages.php

  1.  Smsordernotifyмодуль отправки SMS при оформлении заказа.

Размещение: /ordering/smsmail/class.smsordernotify.php

  1.  Usersмодуль содержащий классы для работы с информацией о зарегистрированных пользователях и правах для каждого из них.

Размещение: /users/class.users.php

  1.  Divisionsadministrationмодуль администрирования разделов.

Размещение: /divisions/administration/class.divisionsadministration.php

  1.  Sc_abstractмодуль для работы с абстрактными классами.

Размещение:/abstract/class.abstract.php

  1.  Moduleadminмодуль административной панели управления.

Размещение:/modules/module_admin/class.moduleadmin.php

19.Localizationadminмодуль локализации административной панели управления.

Размещение: /localization/class.localizationadmin.php

20. Localizationобщий модуль для работы с локализацией на сайте.

Размещение: /localization/class.localization.php

21. Discount_coupons –модуль управления дисконтными купонами на скидку.

Размещение: /discount_coupons/class.discount_coupons.php

22. Order_editorмодуль вывода заказов в административной панели.

Размещение: /order_editor/class.order_editor.php

23. Configurationобщие конфигурационные настройки магазина.

Размещение: /configuration/class.configuration.php

24. Order_creater – модуль создания заказов.

Размещение: /order_editor/class.order_creater.php

25. ExportTo1cмодуль экспорта товаров в 1С.

Размещение: /products/exportto1c/class.exportto1c.php

  1.   Каскадные таблицы стилей

CSS (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.6)

Для задания цветов, шрифтов, полей, строк, для расположения отдельных блоков на сайте использовались каскадные таблицы стилей – CSS. Преимущества использования CSS – применение одной таблицы для отображения большого количества документов,  уменьшение повторяемости в структурном содержимом и основное, в возможности реализации описания логической структуры Web-страницы.

Основные классы и идентификаторы объектов используемые при создании Интернет- магазина:

Блоки (div):

.cpt_news_short_list – краткий список новостей на главной

.cpt_category_tree – дерево категорий

.cpt_maincontent – главное содержание

.cpt_root_categories – категории на главной (витрина)

Общие:

.cpt_shopping_cart_info – корзина (уменьшенная, на всех страницах)

.survey_question – вопрос голосования

.cpt_category_tree ul – список категорий

.news_title – заголовок новости

  1.  ОПИСАНИЕ И ПРОЦЕСС СОЗДАНИЯ ПРОГРАММЫ
  2.  Функциональное назначение программы

Для функционирования программы необходимо следующее серверное программное обеспечение:

  1.  операционная система Windows XP или выше;
  2.  СУБД MySQL версии 2.20 минимум;
  3.  Web-сервер Apache версии не менее 1.2.0 с установленным интерпретатором PHP 4.0.3 или выше.

Основные преимущества ОС Windows:

  1.  наличие средств, позволяющих создавать сложные  программы  из более простых;
  2.  наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе;
  3.  обеспечение согласования форматов в файлах, работа с последовательным потоком байтов, благодаря чему облегчается чтение прикладных программ;
  4.  наличие простого, последовательного интерфейса с периферийными устройствами;
  5.  система является многопользовательской, многозадачной;
  6.  архитектура машины скрыта от пользователя, благодаря этому  облегчен  процесс  написания программ, работающих на различных платформах и аппаратных конфигурациях.

PHP является широко используемым языком сценариев общего назначения с открытым исходным кодом. PHP создавался специально для ведения Web-разработок и может использоваться непосредственно в HTML-коде. Синтаксис языка берет начало из языка C. Преимущественным назначением PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако, область применения PHP только этим не ограничивается.

Одним из значительных преимуществ PHP является поддержка широкого круга баз данных. Создание скрипта, использующего базы данных, - невероятно просто. Также в PHP включена поддержка DBX и ODBC для работы на абстрактном уровне, так можно работать с любой базой данных, использующих DBX/ODBC.

В качестве СУБД для Интернет- магазина выбрана СУБД MySQL. MySQL – это мощная СУБД с открытым исходным кодом.

Оптимальным способом интерфейса с MySQL является использование сокетов. Такая система используется в частности для обеспечения взаимодействия Apache (+PHP) – MySQL.

HTML-документ представляет собой текстовый файл. В основе любого World Wide Web – документа лежат тэги. Тэги, которые заключаются в угловые скобки < >, описывают структуру и формат документа.

Тэги можно разбить на четыре группы в соответствии с выполняемыми ими функциями. Различают тэги определения, описания, связи и тэги, вызывающие средства мультимедиа.

Сам по себе язык HTML, на котором создаются документы для Internet'а, является «пассивным». Его нельзя назвать языком программирования в традиционном понимании. Он позволяет размещать на Web-странице текст, изображения, организовывать ссылки, но не позволяет сделать Web-страницу активной.

Язык CSS насчитывает довольно большое количество свойств элементов HTML, которыми он может управлять. Существует несколько спецификаций CSS очень отличающихся друг от друга. В данный момент комитет W3C рекомендует использовать CSS версии 1.1, т.к. он поддерживается большинством браузеров (Internet Explorer 4 и выше, Opera 5 и выше, Mozilla 0.71 и выше).

Назначение языка JavaScript – позволит сделать Web-страницу активной. Язык JavaScript не имеет никакого отношения к языку Java, несмотря на схожее название. Java имеет очень немного средств для связи аплетов с браузером, что так необходимо разработчикам в их приложениях, в то время как JavaScript разрабатывался именно для этого. В отличии от Java, JavaScript является интерпретируемым языком. Программа на языке JavaScript размещается прямо в HTML-документе в виде исходного текста.

Главной целью языка JavaScript является обеспечение активного взаимодействия HTML-документов с пользователем. JavaScript вышел в конце 1995 года и к настоящему времени стал очень популярным и поддерживается многими браузерами. Язык JavaScript был создан компанией Netscape Communication Corporation в сотрудничестве с компанией Sun Microsystems. Первоначальное название языка JavaScript было LiveScript. Затем, после того как язык Java получил всемирную известность, LiveScript переименовали в JavaScript. Возможно, это было сделано фирмой Netscape из коммерческих соображений: все, что имело в своем названии ключевое слово «Java», вызывало живой интерес.

JavaScript не предназначен для создания автономных программ, и в этом он сильно отличается от других языков, таких как C или Java. Конструкции JavaScript встраиваются непосредственно в исходный текст документов HTML и интерпретируются браузером по мере загрузки этих документов. Более того, с помощью JavaScript возможно динамически формировать и изменять текст загружаемого HTML-документа без повторной загрузки страницы с новыми параметрами с сервера.

В языке JavaScript доступны многочисленные объекты, встроенные в браузер, такие как документы HTML, фреймы, формы, ссылки на другие документы и так далее. Допускается создание собственных классов, а также группирование объектов и структур данных для расширения базовых классов. С помощью конструкций JavaScript, встроенных в документы HTML, можно обрабатывать события. Эти события возникают в результате выполнения пользователем различных операций над документом HTML. Это позволяет получать различные визуальные эффекты, например, изменение внешнего вида органов управления, когда над ними находится курсор мыши. Можно предварительно проверять данные, введенные пользователем в полях формы перед их отправкой для обработки на сервер Web, а также выполнять произвольные действия перед загрузкой документа HTML в окно браузера и делать другую полезную работу.

  1.   Описание логической структуры интернет- магазина

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

Приложение для клиентов:

  1.  регистрация покупателей;
  2.  каталог продукции;
  3.  корзина покупателя;
  4.  оформление заказа клиента;

Приложение для администратора:

  1.  просмотр/изменение истории покупок для каждого пользователя;
  2.  просмотр/изменение информации о посещении магазина клиентами;
  3.  просмотр/изменение информации о товарах магазина;
  4.  просмотр/изменение категорий товаров в магазине;
  5.  просмотр/изменение информационных страниц;
  6.  просмотр/изменение новостей.

  1.  Вызов и загрузка

 Серверная часть программного комплекса стартует вместе с web-сервером. Альтернативных вариантов загрузки не существует. Пользователь в процессе загрузки серверной части комплекса не участвует. Получение доступа к клиентской части Интернет- магазина осуществляется следующим образом:

  1.  клиент запускает web-браузер на компьютере, подключенном к Интернет;
  2.  в строке Переход (название зависит от типа используемого браузера) клиент пишет URL магазина;
  3.  после загрузки магазина в окне браузера, клиент может начинать работу с магазином. Стартовая страница магазина выглядит, как показано на рисунке 6.

Рисунок 6 – Стартовая страница Интернет- магазина

Получение доступа к административной части осуществляется следующим образом:

  1.  администратор запускает web-браузер на компьютере, подключенном к Интернет;
  2.  в строке Переход (название зависит от типа используемого браузера) клиент пишет URL магазина с добавлением пути /published;
  3.  браузер выдает запрос на ввод логина/пароля администратора; (Рисунок 7)
  4.  если аутентификация прошла успешно, администратор может начинать работу с магазином. Панель управления для администратора сайта выглядит, как показано на рисунке 8.

Рисунок 7 – Окно авторизации администратора

Рисунок 8 – Панель управления сайтом

  1.   Входные и выходные данные

Входными данными для данного программного комплекса являются:

  1.  сведения о покупателе (данные вводятся покупателем через web-интерфейс при регистрации).
  2.  выбор товаров (осуществляется покупателем через web-интерфейс при просмотре каталога товаров). Товар выбирается покупателем для последующего оформления заказа;
  3.  индивидуальная корзина покупок (данные поступают путем выбора пользователем товаров из каталога). В корзине содержатся данные заказа;
  4.  регистрация заказа на содержимое корзины (заказ содержит данные корзины покупателя). Процесс оформления заказа для оплаты и последующей доставки товара покупателю;
  5.  данные о товарах (вводятся менеджером магазина через web-интерфейс).

Выходными данными комплекса являются:

  1.  Форма выбора товаров;
  2.  Дополнительная информация о товаре;
  3.  Форма изменения регистрационных данных о покупателе;
  4.  Индивидуальная корзина покупок;
  5.  Форма истории покупок;
  6.  Форма справки;
  7.  Извещение о заказе;
  8.  Статистика покупок.

  1.   Описание пользовательского интерфейса

Сначала рассмотрим приложение для пользователя. После ввода URL в строке «Переход» браузера, пользователь попадает на главную страницу Интернет- магазина. Она изображена на рисунке 4. Для осуществления покупки товара в Интернет- магазине пользователю необходимо войти в систему (зарегистрированному пользователю) или зарегистрироваться (новому пользователю). Форма входа в систему выглядит так, как показано на рисунке 9.

Рисунок 9 – Форма авторизации на сайте

Если пользователь не зарегистрирован в системе, то ему необходимо пройти процесс регистрации. Форма регистрации выглядит так, как показано на рисунке 10.

Рисунок 10 – Форма регистрации

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

Рисунок 11 – Просмотр товаров для добавления в корзину

На рисунке 12 представлен просмотр определенного товара, с этой страницы так же есть возможность добавления товара в корзину.

Рисунок 12- Просмотр определенного товара

Корзина клиента открывается во всплывающем окне и показывает все добавленные в нее товары (Рисунок 13). Находясь в режиме просмотра корзины, покупатель может изменить количество товара, удалить выбранный товар из корзины, применить купон на скидку.

Рисунок 13 – Корзина покупателя

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

Рисунок 14 – Оформление заказа – Доставка

После выбора необходимого способа доставки заказа переходим в раздел Оплаты и выбираем удобный способ оплаты заказа(Рисунок 15).

Рисунок 15 – Выбор способа оплаты

Следующий шаг – это подтверждение заказа в соответствии с рисунком 16.

Рисунок 16 – Подтверждение заказа

После нажатия на кнопку «Оформить заказ» покупатель видит следующий текст, на котором покупателю предлагается оплатить заказ прямо сейчас:

В личном кабинете есть возможность редактирования контактной информации, адресной книги и просмотра своей истории заказов, и в каком статусе находится тот или иной заказ. Рассмотрим рисунок 17 – просмотр заказа покупателя Ивана Иванова.

Рисунок 17 – Просмотр истории заказа

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

Рисунок 18 – Страница с контактной информацией и подробной картой Google

Рисунок 19 – Форма обратной связи

При выборе товаров в Интернет- магазине можно воспользоваться удобным фильтром для выбора товара в определенной ценовой категории (Рисунок 20), также можно  воспользоваться сортировкой.

Рисунок 20 – Результат применения фильтра для определенной категории

  1.  Описание приложения для администратора

Рассмотрим приложение для администратора. После ввода в строке «Переход» URL магазина и имени скрипта published (пр. http://www.tehno-shop.rux/published), происходит авторизация администратора. Окно ввода имени и пароля для входа в зону администрирования сайта выглядит так, как показано на рисунке 7. После успешной авторизации администратор попадает на главную страницу административного приложения. На данной странице администратор может перейти к просмотру статистики, редактированию новостей, просмотру информации о клиентах, редактировать категории, изменению и обработке заказа. При этом осуществляется работа с основными приложениями, которые в свою очередь имеют внутренние приложения:

  1.  Заказы

- обработка заказов;

- изменение статусов заказа;

- управление купонами на скидку для постоянных клиентов;

- настройка скидок;

- модуль отправки SMS сообщения при поступлении нового заказа.

  1.  Покупатели

- информация о зарегистрированных покупателях;

- управление скидками для определенных групп покупателей (например: опт, розница);

- подписчики на новости.

  1.  Продукты

- панель для управления всеми категориями и их подкатегориями и их продуктами;

- отзывы написанные для товаров;

- возможность импорта товаров из файла CSV;

- возможность экспорта товаров в файл CSV;

- создание файлов для GoogleBase и Яндекс.Маркета;

- создание дополнительных характеристик для товара.

  1.  Отчеты

- отчет о продажах;

- отчет по продуктам и по категориям.

  1.  Инструменты

- редактирование/добавление новых информационных страниц;

- редактирование/добавление новостей;

- интеграция с 1С на уровне обмена данными через формат CommerceML;

- управление голосованиями;

- добавление раздела обмена ссылками;

- карта сайта Sitemap;

- подключение своего магазина к аккаунту GoogleAnalitics;

- управление печатными формами Интернет- магазина (счет-фактура, квитанция, товарная накладная и др.).

  1.  Настройки

- общие настройки магазина (настройки каталогов, покупателей, корзины и заказов);

- управление валютами на сайте;

- способы доставки магазина;

- способы оплаты (наличные, безналичные);

- страны и области, внесенные в базу данных;

- система расчета налогов;

- управление формой регистрации.

  1.  Дизайн

- редактор дизайна установленной темы;

- языки и переводы на сайте;

- раздел загрузки и просмотра существующих изображений.

Редактирование категорий, товаров можно редактировать, как показано на рисунке 21.

Рисунок 21 – Просмотр продуктов и категорий

На рисунке 22 представлено редактирование определенного товара, любой категории.

Рисунок 22 – Редактирование товара

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

Рассмотрим общую панель управления заказами (Рисунок 23).

Рисунок 23 – Панель управления заказами

При просмотре определенного заказа видны данные указанные пользователем при регистрации и оформлении заказа -  информация о пользователе, способ доставки, оплата, наименование и стоимость заказываемых товаров (Рисунок 24).

 

Рисунок 24 – Обработка заказа

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

Существующие статусы заказов:

- В обработке;

- Оплачен и доставлен;

- Отмененный;

- Новый;

- Деньги списаны с карты клиента;

- Деньги возвращены;

- Отправлен;

- Отложен.

Редактирование/добавление информационных страниц представлено на рисунке 25.

Рисунок 25 – Редактирование информационной страницы

Для добавления новой новости необходимо пройти Инструменты-> Блог/Новости-> Написать сообщение.

 

3.7 Порядок работы с программой

Для осуществления процесса продаж товара через сеть Интернет необходимо занести данные в базу данных. Процесс занесения данных в БД выглядит так:

  1.  Администратор загружает административное приложение (в окне браузера вводит URL сайта и путь к административному приложению), после авторизации администратор добавляет категории товаров;
  2.  Администратор добавляет товары в введенные категории.

Более вмешательства администратора в работу комплекса без особой необходимости не требуется.

Пользователь:

  1.  загружает приложение для пользователя;
  2.   просматривает каталог;
  3.  выбирает товар;
  4.   добавляет товар в корзину;
  5.  оформляет заказ.

Указывать конкретное время работы администратора или пользователя с АИС не имеет смысла, т.к. ограничить по времени, например, процесс выбора товара пользователем невозможно.

3.8 Методы тестирования сайта

3.8.1 Проверка на кроссплатформенность

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

Перед тем как выложить свой Web-сайт в интернете (не на локальном хостинге), необходимо проверить, как он будет смотреться в разных браузерах. Определить какие браузеры на данный момент больше всего используют пользователи, нам поможет статистика с сайта LiveInternet7) (Рисунок 26).

Рисунок 26 – Статистика использования браузеров

Как видно по данным статистики на февраль 2013 года, основные браузеры которые используют пользователи – Google Chrome, Firefox, Opera12. Эти браузеры и возьмем для тестирования нашего сайта (рисунок 27, рисунок 28, рисунок 29).

 

Рисунок 27 – Отображение сайта в браузере Firefox

Рисунок 28 – Отображение сайта в браузера Google Chrome

Рисунок 29 – Отображение сайта в браузере Opera

3.8.2 Проверка скорости работы

Важным элементом в продвижении сайта является его скорость работы. Если у пользователя каждая страница открывается по несколько десятков секунд (даже не минут), пользователь просто может закрыть ваш сайт и перейти на другой, даже не просмотрев содержимого.

Для анализа скорости загрузки страниц нашего сайта используем бесплатный плагин Firebug 1.11.2 для браузера Firefox. В плагине Firebug установим дополнительный компонент YSlow 3.1.4. YSlow- это расширение позволяющее оценивать страницу по различным характеристикам, что в свою очередь влияет на его скорость работы. Панель управления YSlow представлена на рисунке 30.

Рисунок 30 – Панель управления компонента YSlow

Компонент YSlow базируется на 23 правилах:

  1.  Make fewer HTTP requestsуменьшение HTTP запросов;
  2.  Use a Content Delivery Network (CDN) – использование CDN;
  3.  Avoid empty src or hrefпустые картинки или ссылки;
  4.  Add Expires headersиспользование заголовков;
  5.  Compress components with gzip – компоненты gzip;
  6.  Put CSS at topразмещение таблицы стилей в начале документа;
  7.  Put JavaScript at bottom – размещение JavaScript внизу страницы;
  8.  Avoid CSS expressions – отсутствие CSS expressions ;

  1.  Make JavaScript and CSS externalиспользование скриптов и стилей во внешних файлах;
  2.  Reduce DNS lookupsуменьшение DNS запросов;
  3.  Minify JavaScript and CSS – уменьшение  JavaScript и CSS;
  4.  Avoid URL redirectsотсутствие URL редиректов;
  5.  Remove duplicate JavaScript and CSSудаление дублирующих скриптов и таблиц стилей;
  6.  Configure entity tags (ETags) – сконфигурированы ETags;
  7.  Make AJAX cacheable – кеширование AJAX;
  8.  Use GET for AJAX requests – использование метода GET для AJAX запросов;
  9.  Reduce the number of DOM elements – уменьшение количества DOM-элементов;
  10.  Avoid HTTP 404 (Not Found) errorотсутствие 404 ошибки(страница не найдена);
  11.  Reduce cookie size – уменьшение размера cookie;
  12.  Use cookie-free domainsиспользование компонентов, которые не используют cookie;
  13.  Avoid AlphaImageLoader filter – отсутствие фильтров;
  14.  Do not scale images in HTMLне использовать масштабирование картинок в HTML;
  15.  Make favicon small and cacheable – наличие favicon.

После проверки нашего сайта по первому правилу, был получен результат:

Grade E on Make fewer HTTP requests

This page has 6 external Javascript scripts. Try combining them into one.
This page has 4 external stylesheets. Try combining them into one.
This page has 10 external background images. Try combining them with CSS sprites.

Decreasing the number of components on a page reduces the number of HTTP requests required to render the page, resulting in faster page loads. Some ways to reduce the number of components include: combine files, combine multiple scripts into one script, combine multiple CSS files into one style sheet, and use CSS Sprites and image maps.

Исходя из рекомендаций видно, что для уменьшения количества запросов HTTP и увеличения скорости загрузки страницы необходимо объединить несколько внешних скриптов JavaScript и CSS файлов стилей в один.

3.8.3 Проверка работоспособности гиперссылок на сайте

Для данной проверки также используем компонент YSlow правило №3. Результат:

Grade A on Avoid empty src or href

You may expect a browser to do nothing when it encounters an empty image src. However, it is not the case in most browsers. IE makes a request to the directory in which the page is located; Safari, Chrome, Firefox 3 and earlier make a request to the actual page itself. This behavior could possibly corrupt user data, waste server computing cycles generating a page that will never be viewed, and in the worst case, cripple your servers by sending a large amount of unexpected traffic.

Сайт прошел проверку на работоспособность гиперссылок на сайте, т.к. ошибок не выявлено.

  1.  ЭКОНОМИЧЕСКАЯ ЧАСТЬ

4.1 Расчет трудозатрат возникающих при разработке программного продукта

Программное изделие (ПИ) может оцениваться по различным критериям, значимость которых зависит от стадии существования ПИ.

На этапе разработки ПИ, который включает стадии проектирования, реализации и тестирования ПИ, важны такие показатели как:

  1.  трудоемкость разработки ПИ;
  2.  время разработки ПИ;
  3.  время отладки ПИ;
  4.  время тестирования ПИ;
  5.  стоимость создания программы.

При приобретении программного продукта для его эксплуатации покупателя интересуют, прежде всего, технические характеристики, качество продукта (то есть гарантированное выполнение определенных функций в нормальном и в критическом режиме работы), а также стоимость программного продукта.

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

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

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

4.1.1 Исходные данные

Предполагаемое число операторов                                                                  2000

Коэффициент сложности программы                                                              1,25

Коэффициент коррекции программы в ходе ее разработки                           0,05

Часовая заработная плата программиста, руб/ч                                                 23

Стоимость машино-часа ЭВМ, руб/ч                                                                 4,6

4.1.2 Определение трудоемкости разработки программного обеспечения

Нормирование труда в процессе создания программного обеспечения затруднено в силу творческого труда программиста. Поэтому трудоемкость разработки может быть рассчитана на основе системы моделей с различной точностью оценки.

Трудоемкость разработки определяется следующим образом:

   t  =  t0  +  tи  +  tа  +  tп  +  tотл  +  tд ,           

где t0 – затраты труда на подготовку и описание поставленной задачи  (принимается равным 20), чел. ч.;

tи  –   затраты труда на исследование алгоритма решения задачи, чел. ч.;

tа  –   затраты труда на разработку блок–схемы алгоритма, чел. ч.;

tп   –   затраты труда на программирование по готовой блок–схеме, чел. ч.;

tотл  –   затраты труда на отладку, чел. ч.;

tд   –    затраты труда на подготовку документации по задаче, чел. ч.

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

Условное число операторов в программе определяется по формуле:

    Q  = qc(1+p),                                                 

где q   –   предполагаемое число операторов;

c   –   коэффициент сложности программы;

p   –   коэффициент коррекции программы в ходе ее разработки.  

   Q = 2000 · 1,25 · (1 + 0,05) = 2625

Затраты труда на изучение описания задачи определяются с учетом уточнения описания и квалификации программиста по формуле:

    ,                      

где B – коэффициент увеличения затрат труда вследствие недостаточного описания задачи, B=1,2 ... 1,5;

k  –  коэффициент квалификации программиста, определяемый в зависимости от стажа работы по данной специальности. Он составляет при стаже работы до 2 лет  –  0,8.

чел.ч.

Затраты труда на разработку алгоритма решения задачи определяются по формуле:

                          

чел.ч.

Затраты труда на составление программы по готовой блок–схеме рассчитываются по формуле:

                          

чел.ч.

Затраты труда на отладку программы на ЭВМ рассчитываются по формуле:

                                                   

чел.ч.

Затраты труда на подготовку документации по задаче определяются по формуле:

    tд  =  tдр  +  tдо  ,                              

где tдр  –  трудоемкость подготовки материалов к рукописи;

tдо –  трудоемкость редактирования, печати и оформления документации.

Трудоемкость подготовки материалов к рукописи рассчитывается как:

                                  

чел.ч.

Трудоемкость редактирования, печати и оформления документации определяется следующим образом:

                 

чел.ч.

чел.ч.

Трудоемкость разработки программного продукта составляет:

чел.ч.

4.1.3 Расчет затрат на создание программного продукта

Затраты на создание программного обеспечения определяются по формуле:

    Kпо = Ззп  +  Змв ,                    

где Ззп – заработная плата разработчиков, которая рассчитывается следующим образом:

    Ззп  = t ·Cпр ,                      

где  t   – общая трудоемкость разработки ПО;

Спр  – средняя часовая заработная плата программиста.

Ззп = 1272,25 · 23 = 29 261,75 руб.

Змв –  стоимость машинного времени, необходимого для отладки программы на ЭВМ:

   Змв = tотл · Смч ,                      

где  tотл   –   трудоемкость отладки программы на ЭВМ;

Смч –  стоимость машино-часа ЭВМ.

Змв = 656,25 · 4,6= 3 018,75 руб.

Kпо = 29261,75 + 3018,75 = 32281,5 руб.

Определенные таким образом затраты на создание программного обеспечения являются капитальными затратами на создание автоматизированной системы.

Ожидаемая длительность разработки определяется по формуле:

     ,                     

где Bк      –   число исполнителей;

Fp  – месячный фонд рабочего времени (при 40 часовой рабочей неделе Fp=176 часов).

  мес.

Таким образом, ожидаемая длительность разработки составляет 7 месяцев.

 

4.2 Маркетинговое исследование рынка сбыта созданного программного продукта

Целью данной дипломной работы является разработка и программная реализация архитектуры Internet-магазина для продажи компьютерного оборудования.

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

Аналитики из компании Data Insight считают, что к 2015 году объем отечественного рынка интернет- магазинов увеличится в два раза - это около 20 млрд долларов, а в процентном соотношении вырастет на 20% в год. Основной рост продаж будет направлен на нестоличные регионы, где продажи увеличатся с 3 до 12 млрд долларов, а в Москве и Петербурге в ближайшие пять лет этот показатель будет расти в среднем с 5 до 8 млрд долларов в 2015 году.

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

4.3 Экономическая эффективность

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

5 ОХРАНА ТРУДА

5.1 Вредные и опасные факторы при работе на ПК

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

Вредными факторы при работе с ПК являются:

  1.  Электромагнитное излучение от экрана компьютера, вызванное спецификой, а также конструкторскими особенностями мониторов с электронно-лучевой трубкой и возникающее в результате бомбардировки электронно-лучевой пушкой люминофора на экране монитора.  
  2.  Неблагоприятные  условия для работы глаз, связанные с мерцанием экрана монитора, а также такими неблагоприятными факторами как неправильно подобранные параметры разрешения, яркости, контрастности, коэффициента светопередачи, равномерности, сведения и т.д.
  3.  Лучистая теплота, образующаяся при работе различных периферийных устройств компьютера, таких как системный блок, монитор. Особенно сильно лучистое тепло генерируется сканером и принтером.
  4.  Недостаточное освещение, которое в большинстве случаев не соответствует требованиям нормативных документов, регламентирующих санитарные нормы на освещенность рабочего места оператора ЭВМ.
  5.  Электромагнитные поля, которые возникают при работе системного блока ПК, а также монитора компьютера. Особенно интенсивные электромагнитные поля образуются с задней стороны монитора.
  6.  Наличие вредного мерцания на экране компьютера, обусловленного неправильной установкой параметров кадровой и строчной развертки.
  7.  Неблагоприятное положение позвоночника при длительном нахождении в сидячем положении. Такое положение позвоночника может привести к развитию различного рода искривления позвоночника, что в целом крайне неблагоприятно отражается на состоянии здоровья оператора.

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

Воздействие на организм вредных и опасных факторов может привести к развитию профессиональных заболеваний, которые условно можно разделить на 3 основные группы:

  1.  Заболевания органов зрения. К ним можно отнести временную и постоянную потерю остроты зрения, возникновение т.н. «куриной слепоты», т.е. потеря остроты зрения в сумерках и темноте, коньюктивит, а в наиболее тяжелых случаях глаукомы и катаракты.
  2.  Заболевания позвоночника и внутренних органов, связанных и ним. Среди них наиболее распространено возникновение сколиоза, отложения солей, артрита,  а также проявление острых приступов радикулита.
  3.  Заболевания общего характера, связанные с длительным воздействием электромагнитных полей. К ним относят головные боли, повышенная утомляемость, раздражительность, приступы мигрени, а также скрытые заболевания, которые проявляются спустя некоторое, иногда длительное время после воздействия опасного или вредного фактора (сердечные боли, повреждение центральной нервной системы и заболевания с ним связанные, защемления  нервов и т.д ).

5.2 Инженерно – технические и организационные мероприятия по охране труда.

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

Для нейтрализации воздействия опасных и вредных факторов предусмотрено проведения ряда организационных и инженерно-технических мероприятий.

Среди организационных мероприятий следует выделить:

  1.  Проведение первичного, вступительного инструктажей, а также инструктажей на рабочем месте. Исполнение и контроль за качеством исполнения возлагается на инженера по охране труда, а также на руководителей структурных подразделений.
  2.  Проведение курсов обучения по правилам техники безопасности. Это обучение должно проводиться в соответствии с установленными нормативами органами государственного надзора за охраной труда и отраслевыми нормативами. Исполнение и контроль за качеством исполнения возлагается на инженера по охране труда.
  3.  Проведение плановых и внеочередных проверок и аттестаций по технике безопасности. Исполнение и контроль за качеством исполнения возлагается на инженера по охране труда.
  4.  Обеспечение оптимальных режимов труда и отдыха трудящихся. Для оператора ЭВМ такой режим работы состоит в чередований 40 минут работы и 15 минут отдыха. Кроме того должен быть предусмотрен перерыв для принятия пищи через 4 часа работы продолжительностью 1 час. Исполнение и контроль за качеством исполнения возлагается на руководителей структурных подразделений.
  5.  Организация лечебно-профилактического обслуживания трудящихся. Работникам должно предоставляться право получения путевок на санаторно-оздоровительное лечение на льготных условиях, а также добавление дополнительных оплачиваемых дней к отпуску, согласно законодательству о труде Украины. Исполнение и контроль за качеством исполнения возлагается на руководителей структурных подразделений и представителей профсоюза отрасли.
  6.  Санитарно-бытовое обслуживание трудящихся, которое включает организацию условий для безопасного и комфортного труда и отдыха. Исполнение и контроль за качеством исполнения возлагается на руководителей структурных подразделений и представителей профсоюза отрасли.
  7.  Профессиональный отбор кадров. Исполнение и контроль за качеством исполнения возлагается на руководителей структурных подразделений и инженера по подготовке кадров.

Основными направлениями инженерно – технических мероприятий является:

  1.  Обеспечение безопасности производственного оборудования, процессов:

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

  1.  Обеспечение безопасности строений и сооружений.  
  2.  Нормализация санитарно-гигиенических условий труда:
  3.  Электромагнитное излучение от экрана компьютера и неблагоприятные условия для работы глаз нейтрализуется путем подбора модели монитора, отвечающего, нормам безопасности, а также установлением защитного экрана между экраном монитора и глазами пользователя;
  4.  Лучистая теплота нейтрализуется путем правильного размещения периферийного оборудования относительно рабочего места пользователя и других источников лучистого тепла в помещении;
  5.  Недостаточное освещение компенсируется путем установки дополнительных светильников, обеспечивающих освещение рабочего места пользователя ПК согласно нормам законодательных документов, регламентирующих данный аспект.
  6.  Электромагнитные поля нейтрализуются путем установления защитных кожухов и экранов, поглощающих  большую часть вредного излучения. Кроме того необходимо размещать оборудования согласно требованиям безопасности. Поскольку наибольшую опасность представляет задняя часть монитора, то рабочие места пользователей нежелательно располагать таким образом, чтобы задняя часть монитора одного сотрудника упиралась в спину другому. В крайнем случае, когда невозможно избежать такого расположения рабочих мест, между ними надо соблюдать предельно возможную дистанцию, но не менее 1.5 метра.
  7.  Неблагоприятное положение позвоночника при длительной работе с ЭВМ нейтрализуется эргономичным оснащением рабочего места пользователя ПК, а также соблюдением режима труда и отдыха при работе с ПК.

Контроль за состоянием охраны труда должен быть направлен на проверку состояния условий труда, выявление отклонений от требований стандартов, норм и правил по охране труда, проверку выполнения службами и подразделениями своих обязанностей в области охраны труда и на принятие эффективных мер по ликвидации недостатков.

ЗАКЛЮЧЕНИЕ

В данном дипломном проекте была спроектирована и разработана система обеспечения продаж через сеть Интернет.

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

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

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

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

В разделе «Охрана труда» обоснованы инженерно-технические мероприятия по охране труда при использовании разработанного программного продукта на вычислительной технике.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1.  Дунаев В.В., HTML, скрипты и стили 2-е издание. - СПб.: БХВ-Петербург, 2008. - 1024 с.
  2.  Джейсон Ленгсторф,  Pro PHP and jQuery. - М.: Вильямс, 2011. - 334 с.
  3.  К. Дж. Дейт  Введение в системы баз данных . - СПб.:  Вильямс, 2006. - 1072 с.
  4.  Мишель Е., Дэвис и Джон А. Филлипс, Изучаем PHP и MySQL. СПб.: Символ-Плюс , 2008. - 442с.
  5.  Прохоренок Н., HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -СПб.: БХВ-Петербург, 2010. - 900 с.
  6.  Аузан В., Интернет и деньги.- СПб.: Эксперт, 2000. - 700 с.
  7.  Архив журналов “PC Magazine”. 1999-2000 год. США.
  8.  Паршенцев А.А., Проблема и перспективы развития электронных магазинов.- М.: Вильямс, 2000.-580 с.
  9.  Мелюхин И., Электронные деньги и банковские операции в компьютерных сетях // Мировая экономика и международные отношения.- СПб.: БХВ-Петербург,1996. – 800 с.
  10.   Гутманс Э., Баккен С., Ретанс Д., РНР 5. Профессиональное программирование. Пер. с анrл. - СПб: Символ-Плюс, 2006.- 704 с.
  11.   Аргерих Л. и др., Профессиональное РНР программирование. Пер. с анrл.- СПб: Символ-Плюс, 2003. 600 с.
  12.   Реляционная база данных и ее особенности. Виды связей между реляционными таблицами [Электронный ресурс] / Режим доступа: URL: http://shkola.lv/index.php?mode=cht&chtid=511 
  13.   Документация по языку программирования php [Электронный ресурс] / Режим доступа: URL: http://www.php.net/ 
  14.  Зеркало сайта СУБД MySQL [Электронный ресурс] / Режим доступа: URL: http://www.mysql.dp.ua/
  15.  Денвер (программа) [Электронный ресурс]/Режим доступа:  URL: http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%B2%D0%B5%D1%80_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29 
  16.  PHPMyAdmin [Электронный ресурс]/Режим доступа:  URL: http://ru.wikipedia.org/wiki/PhpMyAdmin

ПРИЛОЖЕНИЕ А

Файл index.php

?php

// -------------------------INITIALIZATION-----------------------------//

@ini_set('display_errors', true);

define('DIR_ROOT', str_replace("\\","/",realpath(dirname(__FILE__))));

$DebugMode = false;

if(function_exists('microtime')){

 if(isset($_GET['debug'])&&(($_GET['debug']=='total_time')||($_GET['debug']=='time'))){

  $DebugMode = true;

 }elseif(isset($_COOKIE['debug'])&&$_COOKIE['debug']){

  $DebugMode = true;

 }

}

if($DebugMode){

 $debug_total_time = microtime(true);

 $debug_total_sql_query = 0;

 $debug_total_cache_query = 0;

 require_once(DIR_ROOT.'/classes/class.debug.php');

 $debuger = Debug::getInstance();

 $debuger->start();

}else{

 $debuger = null;

}

 

$Warnings = array();

include_once(DIR_ROOT.'/includes/init.php');

include_once(DIR_CFG.'/connect.inc.wa.php');

 

//look up for XSS

if(!SystemSettings::is_backend()){

 $_SERVER['REQUEST_URI'] = preg_replace('/(["\'\<\>\\\\]{1,})|(%5C)|(%22)|(%27)|(%3C)|(%3E)/','',$_SERVER['REQUEST_URI']);

 foreach($_GET as $name=>$get){

  if($name != preg_replace('/(["\'\<\>\\\\]{1,})|(%5C)|(%22)|(%27)|(%3C)|(%3E)/si','',$name)){

   unset($_GET[$name]);

   continue;

  }

  $_GET[$name] = preg_replace('/(["\'\<\>\\\\]{1,})|(%5C)|(%2[27]{1})|(%3[CE]{1})/si','',$get);

 }

}

//support for old urls

//hack-like method

if(MOD_REWRITE_SUPPORT

 &&!SystemSettings::is_backend()

 &&!isset($_GET['ukey'])

 &&(

  (isset($_GET['__furl_path'])&&preg_match('/^index.php/i',$_GET['__furl_path']))

  ||!isset($_GET['__furl_path'])

  )

 ){

  if(!isset($_GET['__furl_path'])){

   $_GET['__furl_path'] = '';

  }

  if(isset($_GET['productID'])){

   $_GET['__furl_path'].='/product/'.intval($_GET['productID']);

  }elseif (isset($_GET['categoryID'])){

   $_GET['__furl_path'].='/category/'.intval($_GET['categoryID']);

  }

}

 

//support for old auxpages urls

if(!SystemSettings::is_backend()&&isset($_GET['show_aux_page'])){

  $_GET['ukey'] = 'auxpage_'.intval($_GET['show_aux_page']);

  unset($_GET['show_aux_page']);

}

 

//fix redirection

if(isset($_GET['__furl_path'])&&strpos($_GET['__furl_path'],'published/SC/html/scripts/')===0){

 $_GET['__furl_path'] = substr($_GET['__furl_path'],strlen('published/SC/html/scripts/'));

}

//include_once(DIR_CLASSES.'/class.filewbs.php');

//$fileEntry = new FileWBS();

 

 

include(DIR_FUNC.'/setting_functions.php' );

$DB_tree = new DataBase();

$DB_tree->connect(SystemSettings::get('DB_HOST'), SystemSettings::get('DB_USER'), SystemSettings::get('DB_PASS'));

$DB_tree->selectDB(SystemSettings::get('DB_NAME'));

define('VAR_DBHANDLER','DBHandler');

 

 

if(isset($_SESSION['__WBS_SC_DATA'])&&isset($_SESSION['__WBS_SC_DATA']["U_ID"])){

 

 if(SystemSettings::is_hosted()){

  Wbs::loadCurrentDBKey();

  User::set($_SESSION['__WBS_SC_DATA']["U_ID"]);

  User::updateLastTime();

  $fileEntry = new WbsFiles('SC');

  Functions::register($fileEntry, 'file_move_uploaded', 'moveUpload');

 }else{

  $fileEntry = new FileWBS();

  Functions::register($fileEntry, 'file_move_uploaded', 'move_uploaded');

 }

 Functions::register($fileEntry, 'file_copy', 'copy');

 Functions::register($fileEntry, 'file_move', 'move');

 Functions::register($fileEntry, 'file_remove', 'remove');

 //Functions::register($fileEntry, 'file_exists', 'exists');

}

 

 

if(!__USE_OLD_UPDATE){

//DEBUG:||true

if(SystemSettings::is_hosted()||true){

 $update = false;

 // If cannot load dbkey settings

 try {

 // @session_start();

  if(!defined('GET_DBKEY_FROM_URL')){

   define('GET_DBKEY_FROM_URL', 1);

  }

 

  if (Wbs::loadCurrentDBKey()) {

   $update = true;

  }

  

 } catch (Exception $ex) {

  trigger_error($ex->getMessage (), E_USER_ERROR);

  var_dump($ex);

 }

 if ($update) {

  try {

   $updater = new WbsUpdater("SC");

   $updater->check();

  }

  catch (Exception $ex) {

   trigger_error($ex->getMessage (), E_USER_ERROR);

   var_dump($ex);

   //....

  }

 }

}

}

 

$Register = &Register::getInstance();

$Register->set(VAR_DBHANDLER, $DB_tree);

if(isset($_GET['widgets'])){

 renderURL('view=noframe&external=1', '', true);

}

if(isset($_GET['view']) && $_GET['view'] == 'noframe' && isset($_GET['external'])){

 $widgets = 1;

 $Register->set('widgets', $widgets);

}

 

settingDefineConstants();

define('FURL_ENABLED', 1);

$urlEntry = new URL();

$urlEntry->loadFromServerInfo();

 

define('VAR_URL', 'URL');

$Register->set(VAR_URL, $urlEntry);

$_urlEntry = new URL();

$_urlEntry->loadFromServerInfo();

 

$furl_path = isset($_GET['__furl_path'])?$_GET['__furl_path']:'';

 

if(strpos($furl_path,'/')===0){//it's not work properly on apache 1.xx when string start on '/' so it deleted

 $furl_path=substr($furl_path,1);

 if(!SystemSettings::is_hosted())$_GET['__furl_path']=$furl_path;

}

$Register->set('FURL_PATH', $furl_path);

 

if($furl_path == 'robots.txt')

{

    header("HTTP/1.1 404 Not Found");

    header("Status: 404 Not Found");

    header("Content-type: text/html; charset=ISO-8859-1");

    echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'.

            '<html><head>'.

            '<title>404 Not Found</title>'.

            '</head><body>'.

            '<h1>Not Found</h1>'.

            '<p>The requested URL was not found on this server.</p>'.

            '</body></html>';

    die();

};

//$_urlEntry->setPath('/');

$_furl_path=$furl_path?substr($_SERVER["REQUEST_URI"],0,strpos($_SERVER["REQUEST_URI"],$furl_path)):$_SERVER["REQUEST_URI"];

$_furl_path=substr($_furl_path,strlen(WBS_INSTALL_PATH));

if(strpos($_furl_path,'/')===0){//it's not work properly on apache 1.xx when string start on '/' so it deleted

 $_furl_path=substr($_furl_path,1);

 if(!SystemSettings::is_hosted())$_GET['__furl_path']=$_furl_path;

}

while (!strpos($_furl_path,'//')===false){

 $_furl_path=str_replace('//','/',$_furl_path);

}

$_furl_path=explode('/',$_furl_path);

if((isset($_furl_path[0])&&strcmp(strtolower($_furl_path[0]),'shop')===0)){

 $_furl_path='/shop/';

}else{

 $_furl_path='/';

}

 

if(SystemSettings::is_hosted()){

 $_furl_path='/shop/';

 $_urlEntry->setPath('/shop/');

}else{

 $_urlEntry->setPath(str_replace('//','/',WBS_INSTALL_PATH.$_furl_path));

}

$_urlEntry->setQuery('?');

$__url =  preg_replace('/\/[^\/]+$/', '', $_urlEntry->getURI());

//define('CONF_FULL_SHOP_URL', $__url.(SystemSettings::is_hosted()||(SystemSettings::get('FRONTEND')!='SC')?'shop/':''));

$CONF_FULL_SHOP_URL = $__url.(SystemSettings::is_hosted()||(SystemSettings::get('FRONTEND')!='SC')?'shop/':'');

 

$__wa_url = $__url;

if(SystemSettings::is_hosted()){

 $matches = null;

 if(preg_match('/^(.+)shop\/$/',$__url,$matches)){

  $__wa_url = $matches[1];

 }

}

// define('WIDGET_SHOP_URL', preg_replace('/\/[^\/]+$/', '', $_urlEntry->getURI().(SystemSettings::is_hosted()?'':'shop/')));

// $_base_url = substr($__url,0,strlen($__url)-strlen(WBS_INSTALL_PATH));

 

$pattern = '|^((http[s]{0,1}://([^/]+)/)'.substr(WBS_INSTALL_PATH,1).')|msi';

if(preg_match($pattern,$__url,$matches)){

 $_base_url = $matches[2];

 $WIDGET_SHOP_URL = $matches[1];

}else{

 $_base_url = $__url;

}

 

define('BASE_URL', $_base_url);

define('BASE_WA_URL', $WIDGET_SHOP_URL);

define('WIDGET_SHOP_URL',$WIDGET_SHOP_URL.(SystemSettings::is_hosted()&&(preg_match('/\.webasyst\./',$WIDGET_SHOP_URL))||!SystemSettings::is_hosted()&&(SystemSettings::get('FRONTEND')!='SC')?'shop/':''));

define('CONF_FULL_SHOP_URL',WIDGET_SHOP_URL);

unset($_base_url);

define('CONF_WAROOT_URL', WBS_INSTALL_PATH);

define('CONF_ON_WEBASYST', SystemSettings::is_hosted());

 

 

//DEBUG:

/*foreach(array('BASE_URL','BASE_WA_URL','WIDGET_SHOP_URL','CONF_FULL_SHOP_URL','CONF_WAROOT_URL') as $const){

 print $const."=".constant($const)."<br>\n";

}*/

 

require_once(DIR_CFG.'/language_list.php');

require_once(DIR_FUNC.'/category_functions.php');

require_once(DIR_FUNC.'/product_functions.php');

require_once(DIR_FUNC.'/statistic_functions.php');//*

require_once(DIR_FUNC.'/country_functions.php' );//*

require_once(DIR_FUNC.'/zone_functions.php' );//*

require_once(DIR_FUNC.'/datetime_functions.php' );

require_once(DIR_FUNC.'/picture_functions.php' );//*

require_once(DIR_FUNC.'/configurator_functions.php' );

require_once(DIR_FUNC.'/option_functions.php' );//*

require_once(DIR_FUNC.'/discount_functions.php' );

require_once(DIR_FUNC.'/custgroup_functions.php' );//*

require_once(DIR_FUNC.'/currency_functions.php' );

require_once(DIR_FUNC.'/module_function.php' );

require_once(DIR_FUNC.'/registration_functions.php' );

require_once(DIR_FUNC.'/order_amount_functions.php' );

require_once(DIR_FUNC.'/catalog_import_functions.php');//*

require_once(DIR_FUNC.'/cart_functions.php');

require_once(DIR_FUNC.'/subscribers_functions.php' );

require_once(DIR_FUNC.'/discussion_functions.php' );//*

require_once(DIR_FUNC.'/order_status_functions.php' );//*

require_once(DIR_FUNC.'/order_functions.php' );

require_once(DIR_FUNC.'/shipping_functions.php' );//*

require_once(DIR_FUNC.'/payment_functions.php' );//*

require_once(DIR_FUNC.'/reg_fields_functions.php' );//*

require_once(DIR_FUNC.'/tax_function.php' );//*

require_once(DIR_CLASSES.'/class.virtual.shippingratecalculator.php');

//require_once(DIR_CLASSES.'/class.virtual.paymentmodule.php');

if(false){//SMARTY SC

 require_once(DIR_ROOT.'/smarty/smarty.class.php');

 require_once(DIR_ROOT.'/smarty/resources/resource.rfile.php');

 require_once(DIR_ROOT.'/smarty/resources/resource.register.php');

}else{//USE MERGED SMARTY

 require_once(WBS_DIR.'/kernel/includes/smarty/Smarty.class.php');

 require_once(WBS_DIR.'/kernel/includes/smarty/resources/resource.rfile.php');

 require_once(WBS_DIR.'/kernel/includes/smarty/resources/resource.register.php');

}

 

require_once(DIR_FUNC.'/search_function.php' );

 

if(!file_exists(DIR_COMPILEDTEMPLATES)){

 mkdir(DIR_COMPILEDTEMPLATES,0777,true);

}

/*

$products_res = db_query("SELECT COUNT( * ) AS 'cnt', `product_code`

FROM `SC_products`

GROUP BY `product_code`

ORDER BY `cnt` DESC");

while($row = db_fetch_row($products_res)){

 if($row['cnt']==1){

  break;

 }

 db_phquery('DELETE FROM `SC_products` WHERE `product_code` =? LIMIT ?',$row['product_code'],($row['cnt']-1));

}

*/

 

 

//select a new language?

if (isset($_POST['lang'])){

 LanguagesManager::setCurrentLanguage($_POST['lang']);

 RedirectSQ();

}

if (isset($_GET['lang'])){

 LanguagesManager::setCurrentLanguage($_GET['lang']);

 RedirectSQ('lang=');

}

if (!MOD_REWRITE_SUPPORT and isset($_GET['lang_iso2']))

{

    $lang = LanguagesManager::getLanguageByISO2($_GET['lang_iso2']);

    if($lang != null)

    {

        LanguagesManager::setCurrentLanguage($lang->id);

    };

 RedirectSQ('lang_iso2=');

}

$error404 = false;

ModulesFabric::initGlobalModules();

if(!MOD_REWRITE_SUPPORT and array_key_exists('productID', $_GET) and !array_key_exists('ukey', $_GET) && !array_key_exists('did', $_GET) )

{

    $_GET['ukey'] = 'product';

};

$max_cnt = 200;

$CurrDivision = null;

$Register = &Register::getInstance();

$Register->set(VAR_SMARTY,$smarty);

do{

$did = isset($_GET['did'])?$_GET['did']:0;

if(isset($_GET['ukey'])&&$_GET['ukey']){

 $did = DivisionModule::getDivisionIDByUnicKey($_GET['ukey']);

 set_query('did='.$did, '', true);

 if(!$did&&($_GET['ukey']!='category')&&(strpos($_GET['ukey'],'index.php')!==0)){

  $error404 = true;

 }

}

if(!$did){

 if(!isset($furl1)){

  $furl1 = true;

  fURL::exec();

  continue;

 }

 $did = DivisionModule::getDivisionIDByUnicKey('TitlePage');

}

$CurrDivision = &DivisionModule::getDivision($did);

/*@var $CurrDivision Division*/

if(!$CurrDivision->getID()){

 if(!isset($furl1)){

  $furl1 = true;

  fURL::exec();

  continue;

 }

 $CurrDivision->LinkDivisionUKey = 'TitlePage';

}

}while(--$max_cnt>0&&(!is_object($CurrDivision) || !$CurrDivision->getID()));

/* init Smarty */

$smarty = new ViewSC(); //core smarty object

$smarty_mail = new ViewSC(); //for e-mails

$smarty->force_compile = false;

$smarty_mail->force_compile = false;

$smarty->register_resource('rfile', array('smarty_resource_rfile_source', 'smarty_resource_rfile_timestamp', 'smarty_resource_rfile_secure', 'smarty_resource_rfile_trusted'));

$smarty->register_resource('register', array('smarty_resource_register_source', 'smarty_resource_register_timestamp', 'smarty_resource_register_secure', 'smarty_resource_register_trusted'));

define('VAR_SMARTY','Smarty');

$Register->set(VAR_SMARTY,$smarty);

settingDefineMLConstants();

if($error404){

 error404page();

}

 

checkLogin();

$smarty->assign('lang_list', $lang_list);

$cur_lang = LanguagesManager::getCurrentLanguage();

/*@var $cur_lang Language*/

$smarty->assign('lang_iso2',$cur_lang->iso2);

//if (isset($_SESSION['current_language'])) $smarty->assign('current_language', $_SESSION['current_language']);

/*

----------------------------------

*/

if($max_cnt<=0){

 die('Couldnt load divisions');

}

if($CurrDivision->LinkDivisionUKey !=''){

 $CurrDivision = &DivisionModule::getDivisionByUnicKey($CurrDivision->LinkDivisionUKey);

 set_query('&did='.$CurrDivision->getID().'&did=&ukey='.$CurrDivision->getUnicKey(), '', true);

}

$Register->set(VAR_CURRENTDIVISION, $CurrDivision);

$AdminDivID = DivisionModule::getDivisionIDByUnicKey('admin');

$AdminChild = $CurrDivision->isBranchOf($AdminDivID);

$admin_mode = ($CurrDivision->UnicKey == 'admin' || $AdminChild)&&($CurrDivision->UnicKey!=='test');

$Register->set('admin_mode', $admin_mode);

if(!isset($furl1) && !$admin_mode and MOD_REWRITE_SUPPORT){

 $furl1 = true;

 fURL::exec();

}

if($admin_mode && !wbs_auth()){

 $CurrDivision = DivisionModule::getDivisionByUnicKey('TitlePage');

 

 $admin_mode = $AdminChild = false;

}

/*@var $CurrDivision Division*/

$LanguageEntry = &LanguagesManager::getCurrentLanguage();

$smarty->assign('BREADCRUMB_DELIMITER', '&raquo;');

if( ($admin_mode || $CurrDivision->UnicKey == 'cpt_constructor') && sc_getSessionData('LANGUAGE_ID') && sc_getSessionData('LANGUAGE_ID')!=$LanguageEntry->id){

 LanguagesManager::setCurrentLanguage(sc_getSessionData('LANGUAGE_ID'));

}

$locals = $LanguageEntry->getLocals(array($admin_mode?LOCALTYPE_BACKEND:LOCALTYPE_FRONTEND, LOCALTYPE_GENERAL, LOCALTYPE_HIDDEN), false, false);

 

$smarty->assign('lang_direction',$LanguageEntry->direction);

$Register->set('CURRLANG_LOCALS', $locals);

$Register->set('CURR_LANGUAGE', $LanguageEntry);

$DefLanguageEntry = &ClassManager::getInstance('Language');

$DefLanguageEntry->loadById(CONF_DEFAULT_LANG);

$deflocals = $DefLanguageEntry->getLocals(array($admin_mode?LOCALTYPE_BACKEND:LOCALTYPE_FRONTEND, LOCALTYPE_GENERAL, LOCALTYPE_HIDDEN), false, false);

$Register->set('DEFLANG_LOCALS', $deflocals);

$Register->set('DEF_LANGUAGE', $DefLanguageEntry);

$rMonths = array(

 1=>translate('str_month_january'), 2=>translate('str_month_february'), 3=>translate('str_month_march'), 4=>translate('str_month_april'), 5=>translate('str_month_may'), 6=>translate('str_month_june'), 7=>translate('str_month_july'), 8=>translate('str_month_august'), 9=>translate('str_month_september'), 10=>translate('str_month_october'), 11=>translate('str_month_november'), 12=>translate('str_month_december'),

);

$rWeekDays = array(

 0=>translate('str_week_monday'),

 1=>translate('str_week_tuesday'),

 2=>translate('str_week_wednesday'),

 3=>translate('str_week_thursday'),

 4=>translate('str_week_friday'),

 5=>translate('str_week_saturday'),

 6=>translate('str_week_sunday'),

);

include_once(DIR_INCLUDES.'/handler.message.php');

checkPath(DIR_TEMP);

checkPath(DIR_LOG);

$CurrDivision->loadCustomSettings();

if (isset($_SESSION['log'])) $smarty->assign('log', $_SESSION['log']);

$smarty->assign('CurrentDivision', array(

 'id' => $CurrDivision->ID,

 'name' => $CurrDivision->Name,

 'parentID' =>$CurrDivision->ParentID,

 'ukey' => $CurrDivision->UnicKey,

 ));

$smarty_mail->template_dir = DIR_TPLS.'/email';

if($admin_mode){

 include(DIR_FUNC.'/xml_parser.php');

 include(DIR_FUNC.'/xml_installer/xml_installer.php');

 include(DIR_CFG.'/paths.inc.php' );

 $themeEntry = &ClassManager::getInstance('theme');

 /*@var $themeEntry Theme*/

 $res = $themeEntry->load(CONF_CURRENT_THEME);

 if(PEAR::isError($res)){

  RedirectSQ('demo_theme_id='._getSettingOptionValue('CONF_CURRENT_THEME'));

 }

 $smarty->assign('url_current_theme_css', $themeEntry->getURLOffset().'/main.css');

 $AdminDeps = array();

 $SubDivs = &DivisionModule::getBranchDivisions($AdminDivID, array('xEnabled'=>1));

 foreach ($SubDivs as $_SubDiv){

  $AdminDeps[] = array(

   'id' => $_SubDiv->ID,

   'name' => $_SubDiv->Name,

  );

 }

 $BreadDivs = $CurrDivision->getBreadsToID($AdminDivID);

 if(count($BreadDivs)>1){

  $CurrDptID = $BreadDivs[1]->ID;

 }else {

  $CurrDptID = $CurrDivision->ID;

 }

 sc_checkLoggedUserAccess2Division($CurrDivision, $BreadDivs);

 if($CurrDivision->UnicKey!='admin'){

  $smarty->assign('SubDivs', DivisionModule::getBranchDivisions($CurrDptID, array('xEnabled'=>1)));

 }

 $smarty->assign('current_dpt', $CurrDptID);

 $smarty->assign('admin_departments', $AdminDeps);

 $smarty->assign('admin_departments_count', count($AdminDeps));

 $smarty->assign('admin_main_content_template', 'nav2level.tpl.html');

 $smarty->template_dir = DIR_TPLS;

}else{

 $themeEntry = &ClassManager::getInstance('theme');

 /*@var $themeEntry Theme*/

 $res = $themeEntry->load(CONF_CURRENT_THEME);

 if(PEAR::isError($res)){

  RedirectSQ('demo_theme_id='._getSettingOptionValue('CONF_CURRENT_THEME'));

 }

 $Register->set('CURRENT_THEME_ENTRY', $themeEntry);

 $smarty->assign('PAGE_VIEW', isset($GetVars['view'])?$GetVars['view']:'');

 $smarty->assign('main_content_template', 'home.html');

 include(DIR_ROOT.'/includes/authorization.php');

 $smarty->assign('categoryID', isset($_GET['categoryID'])?intval($_GET['categoryID']):0);

 $smarty->template_dir = DIR_FTPLS;

}

 

$store_mode = false;

if(isset($GetVars['store_mode'])){

 $store_mode = $GetVars['store_mode'];

 switch($store_mode){

  case 'facebook':{

   if(!$admin_mode&&defined('CONF_FACEBOOK_ENABLED')&&constant('CONF_FACEBOOK_ENABLED')){

    $Register->set('store_mode',$store_mode);

   }else{

    $store_mode = false;

    error404page();

   }

   break;

  }

  case 'vkontakte':{

   if(!$admin_mode&&defined('CONF_VKONTAKTE_ENABLED')&&constant('CONF_VKONTAKTE_ENABLED')){

    $Register->set('store_mode',$store_mode);

   }else{

    $store_mode = false;

    error404page();

   }

   break;

  }

  default:{

   $store_mode = false;

   error404page();

   break;

  }

 }

}

 

$modifier = '';

switch($store_mode){

 case 'facebook':{$modifier = 'fb_';break;}

 case 'vkontakte':{$modifier = 'vk_';break;}

 default:break;

}

$smarty->assign('button_add2cart_small', URL_IMAGES.'/add2cart_small_'.$modifier.$LanguageEntry->iso2.'.gif');

$smarty->assign('button_add2cart_big', URL_IMAGES.'/add2cart_'.$modifier.$LanguageEntry->iso2.'.gif');

$smarty->assign('button_viewcart', URL_IMAGES.'/viewcart_'.$modifier.$LanguageEntry->iso2.'.gif');

 

/*@var $CurrDivision Division*/

$InheritableInterfaces = $CurrDivision->getInheritableInterfaces();

$Interfaces = $CurrDivision->getInterfaces();

 

if(!$error404){

 foreach ($InheritableInterfaces as $_Interface){

  ModulesFabric::callInterface($_Interface);

 }

 

 foreach ($Interfaces as $_Interface){

  ModulesFabric::callInterface($_Interface);

 }

}

 

if(!$admin_mode){

 //security warnings!

 if (file_exists(DIR_ROOT."/install.php"))$Warnings[] = translate("warning_delete_install_php");

 if (!(is_writable(DIR_TEMP)&is_writable(DIR_PRODUCTS_FILES)&is_writable(DIR_PRODUCTS_PICTURES)&is_writable(DIR_COMPILEDTEMPLATES))){

  $Warnings[] = translate("warning_wrong_chmod");

 }

 //show admin a administrative mode link

 if (isset($_SESSION['log']) && !strcmp($_SESSION['log'], ADMIN_LOGIN)){

  $Warnings[] = "<br><center><a href='".set_query('ukey=admin')."'><font color=red>".translate("lnk_administrativemode")."</font></a></center><br />";

 }

}

$smarty->assign('Warnings', $Warnings);

$smarty->assign( "https_connection_flag", $urlEntry->getScheme()=='https');

$smarty->assign('show_powered_by',SystemSettings::get('SHOW_POWERED_BY')&&!in_array($CurrDivision->UnicKey,array('cart','checkout','invoice')));

$smarty->assign('show_powered_by_link',SystemSettings::get('SHOW_POWERED_BY')&&($CurrDivision->UnicKey == 'TitlePage'));

 

/*

 * $smarty->assign('main_content_template', '404.html');

 */

/*$undefined_smarty_vars = array('main_body_style','printable_version',

  'main_body_tpl','page_not_found404','rss_link','survey_question',

  'show_survey_results','survey_answers','error_message','searchstring',

  'subscribe','GOOGLE_ANALYTICS_SET_TRANS');

foreach($undefined_smarty_vars as $undefined_smarty_var){

 if($smarty->get_config_vars($undefined_smarty_var)===null){

  $smarty->assign($undefined_smarty_var,null);

 }

}

$undefined_get_vars = array('productwidget');

foreach($undefined_get_vars as $undefined_get_var){

 if(!isset($_GET[$undefined_get_var])){

  $_GET[$undefined_get_var] = null;

 }

}

*/

if($error404){

 $smarty->assign('page_title',xHtmlSpecialChars('404 '.translate('err_cant_find_required_page').' ― '.CONF_SHOP_NAME));

}

$mobile_version = detectPDA();

 

$themeEntry = &$Register->get('CURRENT_THEME_ENTRY');

if(!$admin_mode && is_object($themeEntry)){

 $smarty->assign('URL_THEME_OFFSET', $themeEntry->getURLOffset());

 $smarty->assign('overridestyles', file_exists($themeEntry->getPath().'/overridestyles.css'));

}

 

 

if($CurrDivision->MainTemplate && !$mobile_version && !$store_mode && (!isset($_GET['view'])||($GetVars['view']!='mobile'))){

 if(isset($GetVars['view']) && ($GetVars['view'] == 'noframe'||$GetVars['view'] == 'printable')){

  $smarty->assign('main_body_tpl', $smarty->get_template_vars('main_content_template'));

 }

 $smarty->assign('printable_version', (isset($GetVars['view']) &&($GetVars['view'] == 'printable'))?1:false);

 if($Register->is_set('widgets')&&$Register->get('widgets')){

  $smarty->assign('WIDGET_PROCESSING', 1);

 }

 

 $currencyEntry = Currency::getSelectedCurrencyInstance();

 if(is_object($currencyEntry)){

  $smarty->assign('current_currency_js', $currencyEntry->getJSCurrencyInstance());

 }

 $page = $smarty->fetch($CurrDivision->MainTemplate);

}elseif(!$admin_mode&&$store_mode){

 $smarty->assign('PAGE_VIEW', $store_mode);

 //$smarty->assign('PAGE_VIEW', 'mobile');

 $main_body_tpl = $smarty->get_template_vars('main_content_template');

 if(!$main_body_tpl){

  $main_body_tpl = 'home.html';

 }

 $prefix = false;

 switch($store_mode){

  case 'facebook':{

   $prefix = 'fb';

   break;

  }

  case 'vkontakte':{

   $prefix = 'vk';

   break;

  }

 }

 if($prefix && file_exists(DIR_FTPLS."/{$prefix}.{$main_body_tpl}")){

  $main_body_tpl = $prefix.'.'.$main_body_tpl;

 }

 $currencyEntry = Currency::getSelectedCurrencyInstance();

 if(is_object($currencyEntry)){

  $smarty->assign('current_currency_js', $currencyEntry->getJSCurrencyInstance());

 }

 $smarty->assign('main_body_tpl', $main_body_tpl);

 $page = $smarty->fetch($prefix.($prefix?'.':'').'frame.html');

}elseif(!$admin_mode){

 define('PDA_VERSION', 1);

 $smarty->assign('PAGE_VIEW', 'mobile');

 $main_body_tpl = $smarty->get_template_vars('main_content_template');

 if(!$main_body_tpl){

  $main_body_tpl = 'home.html';

 }

 if(file_exists(DIR_FTPLS.'/m.'.$main_body_tpl)){

  $main_body_tpl = 'm.'.$main_body_tpl;

 }

 $smarty->assign('main_body_tpl', $main_body_tpl);

 $page = $smarty->fetch('m.frame.html');

}

 

 

if(!$admin_mode&&true){

 if(SystemSettings::is_hosted()&&file_exists(WBS_DIR.'/kernel/classes/class.metric.php')){

  include_once(WBS_DIR.'/kernel/classes/class.metric.php');

   

  $DB_KEY=SystemSettings::get('DB_KEY');

  $U_ID = sc_getSessionData('U_ID');

   

  $metric = metric::getInstance();

  $metric->addAction($DB_KEY, $U_ID,'SC', 'FRONTEND', $mobile_version?'PDA':'PC');

 }

}

 

if($debuger){

 $debuger->end(null,basename(__FILE__));

 onPageComplete($page);

}else{

 print $page;

}

?>

Файл SHOP.xml

<?xml version="1.0"?>

<DATABASE>

<DBSETTINGS SIGNUP_DATETIME="2013-03-07 12:20:26" CREATE_DATE="2013-03-07 12:24:49" DEFAULT_ENCODING="" EXPIRE_DATE="" READONLY="0" DATE_FORMAT="MM/DD/YYYY" DBSIZE_LIMIT="" FIRSTLOGIN="1" MAX_USER_COUNT="" SQLSERVER="localhost" DB_NAME="shop" DB_PASSWORD="" DB_USER="root" SOURCE="" DB_CREATE_OPTION="use" TEMPORARY="" MYSQL_CHARSET="UTF8" PLAN="" FREE_APPS=""/>

<ADMINISTRATOR PASSWORD="b59c67bf196a4758191e42f76670ceba" TEMPLATE="classic" LANGUAGE="rus"/>

<FIRSTLOGIN COMPANYNAME="Company" FIRSTNAME="FirstName" LASTNAME="LastName" LOGINNAME="ADMIN" PASSWORD="b59c67bf196a4758191e42f76670ceba" TEMPLATE="classic" LANGUAGE="eng" EMAIL="email@mail.ru"/>

<APPLICATIONS>

<APPLICATION APP_ID="SC"/></APPLICATIONS>

<MODULES><ASSIGN CLASS="sms" ID="" DISABLED="1"/></MODULES>

<BALANCE><VALUE ID="sms" VALUE="UNLIMITED"/></BALANCE>

<VERSIONS SYSTEM="306" SC="306"/></DATABASE>

  

2) Создание веб представительства компании [WWW документ]. URL  http://webstudio2u.net/ru/webdesign/132-representative-site.html 

3)  РЕЛЯЦИОННАЯ БАЗА ДАННЫХ И ЕЕ ОСОБЕННОСТИ. ВИДЫ СВЯЗЕЙ МЕЖДУ РЕЛЯЦИОННЫМИ ТАБЛИЦАМИ [WWW документ]. URL http://shkola.lv/index.php?mode=cht&chtid=511 

4) Денвер (программа) [WWW документ]. URL http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%B2%D0%B5%D1%80_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29 

5) PHPMyAdmin [WWW документ]. URL http://ru.wikipedia.org/wiki/PhpMyAdmin.

6 ) Каскадные таблицы стилей [WWW документ]. URL http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D1%8B%D0%B5_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D1%81%D1%82%D0%B8%D0%BB%D0%B5%D0%B9 

7)  http://www.liveinternet.ru/ 


 

А также другие работы, которые могут Вас заинтересовать

32867. СОЦИАЛЬНАЯ СТРУКТУРА. КЛАССЫ И КЛАССОВАЯ БОРЬБА. ИНТЕЛЛИГЕНЦИЯ 58.5 KB
  Есть два различных подхода к определению интеллигенции. Но есть и иной подход наиболее популярный в русской социальной философии согласно которому к интеллигенции причисляют тех кого можно считать нравственным эталоном общества. Предпосылкой появления Интеллигенции в её первичных формах было отделение умственного труда от физического когда рядом с огромным большинством занятым исключительно физической работой образовались социальные группы освобожденные от прямого производительного труда и руководящие общественными делами в том числе...
32868. ГОСУДАРСТВО. МОНАРХИЯ И РЕСПУБЛИКА. ПРАВО 42.5 KB
  Порядок взаимоотношений между членами общества и применения власти определяется: конституцией законами и другими правовыми документами государства которые являются частью формального устройства государства; а также обычаями сформировавшимися внутри общества независимо от государства которые являются основаниями для понимания законов государства и определяют неформализованный порядок применения и трактовки законов. Определений государства множество. Основная функция государства обеспечение комфортного проживания своих граждан. Природа...
32869. ОБЩЕСТВЕННОЕ СОЗНАНИЕ И ЕГО СТРУКТУРА. ЦЕННОСТИ, НРАВСТВЕННОСТЬ, ИСКУССТВО 28.43 KB
  Структурными элементами общественного сознания являются различные его формы: политическое правовое нравственное религиозное эстетическое научное и философское которые различаются между собой по предмету и форме отражения по социальной функции по характеру закономерности развития а также по степени своей зависимости от общественного бытия. В этом и заключается та исторически сложившаяся функция общественного сознания которая делает его объективно необходимым и реально существующим элементом любого общественного устройства. Элементами...
32870. РЕВОЛЮЦИЯ И РЕФОРМА 79.5 KB
  Современные ученые выделяют несколько видов революции: социальная экономическая политическая культурная идеологическая и т. По Марксу социальные революции являются выражением сущности естественно исторического процесса развития общества. Открытый марксизмом закон социальной революции указывает на объективную необходимость в смене одной общественноэкономической формации другой более прогрессивной. Спенсер сравнивал социальные революции с голодом бедствиями повальными болезнями проявлениями неповиновения и “агитацией разросшейся до...
32871. РУССКАЯ АКСИОЛОГИЯ 49.78 KB
  Проблемы ценностей в философии Человека интересует не просто истина а значение объекта для человека для удовлетворения его потребностей. Философские направления XX в выдвигают проблему ценностей на первый план. Выработка ценностей: Часть ценностей человек приобретает по наследству от тех традиций в которые он попал в результате рождения. Интерпритация всегда есть переплавка старых ценностей в новые установки.
32872. ИЛЬИН Иван Александрович 25.84 KB
  усматривал главный порок Человека началасередины 20 века во внутренней расколотости в противоречии между разумом умом рассудком и чувствами душой сердцем. Но в выборе направления движения и основных целях его он был прав поскольку без обретения свободы преодоление тоталитарного отчуждения человека его освобождение невозможно и немыслимо. искал пути к снятию противоречий к такой схеме их взаимодействий при которой отедельные части оппозиции становятся разными проявлениями одних и тех же проблем в существовании человека. Пол это...
32873. ФИЛОСОФИЯ КАК МИРОВОЗЗРЕНИЕ. ПРЕДМЕТ ФИЛОСОФИИ 37.61 KB
  ПРЕДМЕТ ФИЛОСОФИИ. ОСНОВНОЙ ВОПРОС ФИЛОСОФИИ. Главное отличие философии от всех иных наук заключается в том что философия является теоретическим мировоззрением предельным обобщением ранее накопленных человечеством знаний. Предмет философии шире предмета исследования любой отдельной науки философия обобщает интегрирует иные науки но не поглощает их не включает в себя все научное знание не стоит над ним.
32874. МИФОЛОГИЯ КАК МИРОВОЗЗРЕНИЕ. ПЕРВОБЫТНАЯ МИФОЛОГИЯ. РЕЛИГИЯ КАК МИРОВОЗЗРЕНИЕ 57.06 KB
  Как правило мифы пытаются дать ответ на следующие основные вопросы: происхождение Вселенной Земли и человека; объяснение природных явлений; жизнь судьба смерть человека; деятельность человека и его достижения; вопросы чести долга этики и нравственности. Религия форма мировоззрения основанная на вере в наличие фантастических сверхъестественных сил которые влияют на жизнь человека и окружающий мир. При религиозном мировоззрении для человека характерна чувственная образноэмоциональная а не рациональная форма восприятия...
32875. АНТИЧНАЯ ФИЛОСОФИЯ. ПИФАГОР, СОКРАТ, ПЛАТОН, АРИСТОТЕЛЬ, ДЕМОКРИТ, ЭПИКУР 64.08 KB
  Подобно тому как математик ставит вопрос что такое единица и дает довольнотаки сложное определение этого казалось бы простейшего понятия так и философ с глубокой древности задается проблемой: что такое бытие что значит быть Эта специфика философии проливает известный свет и на вопрос о том почему и когда философия возникает. Философ ставит все это под сомнение но делает это для того чтобы докопаться до подлинных корней из которых растет сама данная традиция; в этом и состоит смысл его вопроса: что значит быть что такое бытие А...