47325
Автоматизация процесса продажи книг через сеть Интернет
Дипломная
Информатика, кибернетика и программирование
Раньше большинство сайтов разрабатывались исключительно с использованием HTML и CSS сейчас же в основном используются языки высокого уровня такие как PHP JvScript с применением MySQL для хранения информации в базе данных. Для начала опишем основную схему работы сайта на PHP и MySQL с использованием в качестве Webсервера pch. Сервер в ответ на этот запрос запускает интерпретатор PHP для выполнения скрипта. В данной дипломной работе производится проектирование и создание такой системы в составе административного приложения и приложения...
Русский
2013-11-28
4.43 MB
23 чел.
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего
профессионального образования
«СИБИРСКАЯ ГОСУДАРСТВЕННАЯ ГЕОДЕЗИЧЕСКАЯ
АКАДЕМИЯ» (ГОУ ВПО «СГГА»)
Кафедра ______________________
(полное название выпускающей кафедры)
Дипломная работа (проект) соответствует установленным требованиям и направляется в ГАК для защиты
Заведующий кафедрой ________________(И.О.Ф.)
(подпись)
ДИПЛОМНАЯ РАБОТА (ПРОЕКТ)
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
ЗАКЛЮЧЕНИЕ…………………………………………………………………80
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ………………………….81
ПРИЛОЖЕНИЕ А………………………………………………………………82
ВВЕДЕНИЕ
В последнее десятилетие благодаря бурному развитию Интернета прогрессирует и Web-программирование. Каждая уважающая себя компания уже имеет свой Web-сайт.
Web-сайт представляет собой некое информационное описание компании во всемирной паутине. По сути, это просто сайт компании или какого-либо общества или просто магазина, на котором можно разместить любую важную для представителя информацию. Благодаря этому любой пользователь сети Интернет может ознакомиться с необходимой ему информацией в любое время суток и из любой точки земного шара. С помощью таких представительств, производители получают возможность общения непосредственно с потребителями, так называемая обратная связь, что дает возможность учесть все замечания и пожелания, а также улучшить и развить свою деятельность. Это в свою очередь повышает эффективность работы компании, делая ее работу более налаженной, прибыльной и в современном стиле. Также необходимо отметить безграничные возможности в рекламной сфере, так как это существенно дешевле прорекламировать свою компанию, чем например, на телевидение или радио. Любая компания здесь может создать свой имидж и уверенно конкурировать на рынке и многое другое. В целом Интернет технологии достигли больших высот и на данном этапе просто являются необходимыми и нужными обществу.
Web-представительство это виртуальный офис, где посетитель найдет информацию о компании, формы для оформления заказов, возможность осуществления электронных платежей, онлайн- консультации, подписку на рассылки и множество других полезных для ведения бизнеса сервисов.2) Наличие фирменного стиля (логотип компании, корпоративные цвета, элементы дизайна, ассоциирующиеся с деятельностью компании) в дизайне отличительная черта Web-представительств.
Целей создания Web-сайта может быть очень много. Например, сайт может являться просто визитной карточкой, элементом фирменного стиля. Также сайт может способствовать продвижению торговой марки, продукции и услуг создание Интернет- магазина. Сайт может быть эффективным инструментом, который организует работу между клиентами и партнерами, между сотрудниками одной или нескольких корпораций, так называемый внутрикорпоративный сайт.
Задачи, которые решаются при наличии Web-сайта:
Большинство современных Web-сайтов в интернете являются сложным программным комплексом. Сложность сайта зависит от его тематики, от количества размещенной информации, которая в свою очередь определяет направленность деятельности компании. Если это крупная компания, продающая свои товары, по разным направлениям, тогда обязательно необходимо разместить большой объем информации о продающихся товарах и внешне создать свой Интернет-магазин читаемым и понятным для потенциального покупателя. Если же это информационный сайт, предоставляющий определенные услуги и сервисы, то большой упор следует сделать на удобную систему поиска, логическую и понятную структурированность сайта, быстроту загрузки страниц и хорошо читаемые тексты.
Итак, перечислим основные характеристики современного, профессионального сайта Интернет- магазина:
Возможности для покупателей:
В последнее время область «сайтостроения» пополнилась большим количеством новых технологий для создания 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-приложения
Рассмотрим поэтапно данную схему.
MySQL свободная система управления базами данных. Разработкой и поддержкой СУБД MySQL занимается компания Oracle. MySQL представляет собой сервер базы данных, который осуществляет доступ и хранение информации в ней.
Основные преимущества использования реляционной базы данных MySQL:
Сама по себе сеть Интернет представляет собой огромное хранилище данных. Основными показателями производительности работы Web-сайта в сети является скорость передачи и обработки данных. СУБД которая используется в сети для работы с базами данных MySQL, так как она отвечает требованиям скорости и надежности.
База данных хранит в себе информацию о каких-либо объектах, например, информацию о товарах Интернет- магазина. Каждый товар представленный на витрине магазина имеет определенные параметры и свойства. Для хранения такой информации лучше всего подойдет реляционная база данных.
Реляционная база данных это совокупность взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа.3)
Главными особенностями выбора реляционной базы данных для Web-приложений является, то, что объекты хранятся в виде набора двумерных таблиц. Другими словами таблица имеет определенное количество столбцов, что очень удобно, так как структура таблицы находящейся в базе данных известна заранее, а вот количество строк не ограничено и может добавляться по мере необходимости. Например, добавление новых товаров, новых пользователей (регистрация), новостных материалов на сайте. Управление хранящимися данными выполняется при помощи СУБД MySQL.
Логическая структура базы данных заключается в отделение пользовательского интерфейса СУБД от физического представления. Для реализации данной структуры в наше время чаще всего используют трехуровневую архитектуру баз данных.
Трехуровневая структура включает в себя:
На рисунке 2 продемонстрирована структура трехуровневой СУБД.
Рисунок 2 структура трехуровневой СУБД
На внешнем уровне пользователю предоставляется интерфейс для работы с данными. На нем задаются права доступа и приоритеты пользователей.
Концептуальный уровень предназначен для отображения внешнего уровня на внутренний. Данный уровень обеспечивает независимость между ними. Концептуальное проектирование предназначено для оценки потребностей пользователей, установки для них определенных прав доступа и взаимодействие с базой данных.
На внутреннем уровне СУБД и операционная система принимают и обрабатывают данные.
В данной дипломной работе мы создали 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 это набор интернет-приложений (скриптов) для организации работы магазина и электронной коммерции в сети.
Информационное обеспечение Web-сайта выполняет задачу постоянного пополнения и обновления информации, обновление цен и наличия товаров на складе, добавление новых товаров, поддержание базы данных, управление интерактивными системами сайта (новостные ленты, голосование, FAQ и т.д. ).
Информационная модель Web-представительства представлена в виде диаграммы на рисунке 3:
II. Административная панель
III. БД
IV. Сайт
Рисунок 3- Информационная модель Web-представительства
I этап.
На первом этапе создаются уникальные статьи, новые новости, добавляется или обновляется информация о товарах компании.
II этап.
На втором этапе данные заносятся в административную панель управления сайта.
III этап.
На третьем этапе данные перенаправляются в базу данных Shop.
IV этап.
На четвертом этапе данные отправляются на сайт.
Расположение элементов на сайте зависит от его тематики и количества информации, которую нужно предоставить своим клиентам. При создании интернет- магазина необходимыми компонентами являются: категории предлагаемых товаров, информация про оформление, а также про оплату и доставку заказа, новостная лента для оповещения клиентов о новых акциях компании.
Схема расположения информации на сайте представлена на Рисунке 4.
|
|
|
|
||
|
||
|
10. Блок поиска |
|
11. Основной блок вывода информации |
||
|
||
|
||
|
||
12. Нижнее меню |
||
13. Информация о создателе |
Рисунок 4 Схема расположения информации на сайте
В данном дипломном проекте была создана база данных 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 |
Данные для генерирования счетов |
Схема алгоритма обработки и передачи информации показана на рисунке 5:
Рисунок 5 Схема обработки и передачи информации
Информация предоставляется в электронном виде. После поступления первичных данных производится проверка статей, текстов на уникальность и проверяется качество изображений. Если ошибок нет, вводим данные в базу данных и выводим их на сайт. Выполняем последнюю проверку правильности внесенных данных. Если ошибок нет конец, есть вводим данные в БД заново.
Все программные модули на сайте интернет- магазина написаны на языках 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
Размещение:/linkexchange/class.linkexchange.php
Размещение:/products/export2froogle/class.export2froogle.php
Размещение: /products/yandex.market/class.yandexmarket.php
Размещение: /auxpages/class.auxpages.php
Размещение: /ordering/smsmail/class.smsordernotify.php
Размещение: /users/class.users.php
Размещение: /divisions/administration/class.divisionsadministration.php
Размещение:/abstract/class.abstract.php
Размещение:/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
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 заголовок новости
Для функционирования программы необходимо следующее серверное программное обеспечение:
Основные преимущества ОС Windows:
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 в окно браузера и делать другую полезную работу.
Логически программный комплекс разбит на 2 основные части: клиентская часть (приложение для клиентов) и административная часть. Их, в свою очередь, можно разбить на следующие части в зависимости от выполняемых их «подчастями» функций.
Приложение для клиентов:
Приложение для администратора:
Серверная часть программного комплекса стартует вместе с web-сервером. Альтернативных вариантов загрузки не существует. Пользователь в процессе загрузки серверной части комплекса не участвует. Получение доступа к клиентской части Интернет- магазина осуществляется следующим образом:
Рисунок 6 Стартовая страница Интернет- магазина
Получение доступа к административной части осуществляется следующим образом:
Рисунок 7 Окно авторизации администратора
Рисунок 8 Панель управления сайтом
Входными данными для данного программного комплекса являются:
Выходными данными комплекса являются:
Сначала рассмотрим приложение для пользователя. После ввода 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 Результат применения фильтра для определенной категории
Рассмотрим приложение для администратора. После ввода в строке «Переход» URL магазина и имени скрипта published (пр. http://www.tehno-shop.rux/published), происходит авторизация администратора. Окно ввода имени и пароля для входа в зону администрирования сайта выглядит так, как показано на рисунке 7. После успешной авторизации администратор попадает на главную страницу административного приложения. На данной странице администратор может перейти к просмотру статистики, редактированию новостей, просмотру информации о клиентах, редактировать категории, изменению и обработке заказа. При этом осуществляется работа с основными приложениями, которые в свою очередь имеют внутренние приложения:
- обработка заказов;
- изменение статусов заказа;
- управление купонами на скидку для постоянных клиентов;
- настройка скидок;
- модуль отправки SMS сообщения при поступлении нового заказа.
- информация о зарегистрированных покупателях;
- управление скидками для определенных групп покупателей (например: опт, розница);
- подписчики на новости.
- панель для управления всеми категориями и их подкатегориями и их продуктами;
- отзывы написанные для товаров;
- возможность импорта товаров из файла CSV;
- возможность экспорта товаров в файл CSV;
- создание файлов для GoogleBase и Яндекс.Маркета;
- создание дополнительных характеристик для товара.
- отчет о продажах;
- отчет по продуктам и по категориям.
- редактирование/добавление новых информационных страниц;
- редактирование/добавление новостей;
- интеграция с 1С на уровне обмена данными через формат CommerceML;
- управление голосованиями;
- добавление раздела обмена ссылками;
- карта сайта Sitemap;
- подключение своего магазина к аккаунту GoogleAnalitics;
- управление печатными формами Интернет- магазина (счет-фактура, квитанция, товарная накладная и др.).
- общие настройки магазина (настройки каталогов, покупателей, корзины и заказов);
- управление валютами на сайте;
- способы доставки магазина;
- способы оплаты (наличные, безналичные);
- страны и области, внесенные в базу данных;
- система расчета налогов;
- управление формой регистрации.
- редактор дизайна установленной темы;
- языки и переводы на сайте;
- раздел загрузки и просмотра существующих изображений.
Редактирование категорий, товаров можно редактировать, как показано на рисунке 21.
Рисунок 21 Просмотр продуктов и категорий
На рисунке 22 представлено редактирование определенного товара, любой категории.
Рисунок 22 Редактирование товара
При редактировании товара можно изменять: название товара, его цену, количество, выбрать/изменить определенную категорию в которой расположен товар, краткое описание, полное описание, загрузить его изображение, прописать мета- теги для оптимизации SEO.
Рассмотрим общую панель управления заказами (Рисунок 23).
Рисунок 23 Панель управления заказами
При просмотре определенного заказа видны данные указанные пользователем при регистрации и оформлении заказа - информация о пользователе, способ доставки, оплата, наименование и стоимость заказываемых товаров (Рисунок 24).
Рисунок 24 Обработка заказа
Каждому заказу необходимо выставлять определенный статус обработки заказа, чтобы пользователь был осведомлен о том на какой стадии его заказ.
Существующие статусы заказов:
- В обработке;
- Оплачен и доставлен;
- Отмененный;
- Новый;
- Деньги списаны с карты клиента;
- Деньги возвращены;
- Отправлен;
- Отложен.
Редактирование/добавление информационных страниц представлено на рисунке 25.
Рисунок 25 Редактирование информационной страницы
Для добавления новой новости необходимо пройти Инструменты-> Блог/Новости-> Написать сообщение.
3.7 Порядок работы с программой
Для осуществления процесса продаж товара через сеть Интернет необходимо занести данные в базу данных. Процесс занесения данных в БД выглядит так:
Более вмешательства администратора в работу комплекса без особой необходимости не требуется.
Пользователь:
Указывать конкретное время работы администратора или пользователя с АИС не имеет смысла, т.к. ограничить по времени, например, процесс выбора товара пользователем невозможно.
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 правилах:
После проверки нашего сайта по первому правилу, был получен результат:
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.
Сайт прошел проверку на работоспособность гиперссылок на сайте, т.к. ошибок не выявлено.
4.1 Расчет трудозатрат возникающих при разработке программного продукта
Программное изделие (ПИ) может оцениваться по различным критериям, значимость которых зависит от стадии существования ПИ.
На этапе разработки ПИ, который включает стадии проектирования, реализации и тестирования ПИ, важны такие показатели как:
При приобретении программного продукта для его эксплуатации покупателя интересуют, прежде всего, технические характеристики, качество продукта (то есть гарантированное выполнение определенных функций в нормальном и в критическом режиме работы), а также стоимость программного продукта.
Правильная оценка показателей ПИ на этапе разработки позволит оценить прибыль, которую может принести программный продукт.
Система осуществляет обработку информации, поступающей от клиентов, и дальнейшую передачу информации менеджерам курирующей Интернет-магазина организации. На эти процессы ранее требовалось гораздо больше времени, так как информация обрабатывалась вручную.
Благодаря внедрению данной системы существенно сокращается время обработки информации, и исключаются ошибки в результате снижения влияния человеческого фактора.
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 Вредные и опасные факторы при работе на ПК
Опасным фактором при работе с ПК считаются открытые токоведущие части электрооборудования, к которым приравниваются оголенные части токоведущих кабелей питания, а также сигнальные кабели и незакрытые кожухом части системного блока и монитора.
Вредными факторы при работе с ПК являются:
Между опасными и вредными факторами часто нельзя провести четкой границы.
Воздействие на организм вредных и опасных факторов может привести к развитию профессиональных заболеваний, которые условно можно разделить на 3 основные группы:
5.2 Инженерно технические и организационные мероприятия по охране труда.
Организация и координация работ в области охраны труда должна предусматривать формирование системы управления охраной труда, установление обязанностей и порядка взаимодействия лиц, которые берут участие в управлении, а также принятии и реализации управленческих решений.
Для нейтрализации воздействия опасных и вредных факторов предусмотрено проведения ряда организационных и инженерно-технических мероприятий.
Среди организационных мероприятий следует выделить:
Основными направлениями инженерно технических мероприятий является:
Для нейтрализации воздействия опасного фактора как опасность поражения электрическим током от открытых токоведущих частей оборудования, а также кабелей питания необходимо проводить накрытие токоведущих частей защитными кожухами, а также своевременную изоляцию частей, которые невозможно накрыть кожухами безопасности.
Контроль за состоянием охраны труда должен быть направлен на проверку состояния условий труда, выявление отклонений от требований стандартов, норм и правил по охране труда, проверку выполнения службами и подразделениями своих обязанностей в области охраны труда и на принятие эффективных мер по ликвидации недостатков.
ЗАКЛЮЧЕНИЕ
В данном дипломном проекте была спроектирована и разработана система обеспечения продаж через сеть Интернет.
Благодаря внедрению системы осуществляется расширение рынка сбыта, существенно сокращается время обработки информации, и исключаются ошибки в результате снижения влияния человеческого фактора. Помимо сокращения затрат времени, а значит и более быстрого обслуживания клиентов, существенно повышается эффективность труда менеджеров по продажам, так как теперь им не нужно тратить время на долгие объяснения клиентам преимуществ того или иного товара. Также значительно упростился процесс прохождения информации через сотрудников организации, так как информация о заказе сразу поступает менеджеру и на склад.
При разработке было рассмотрено состояние проблемы и произведен анализ аналогичных существующих решений, приведено обоснование предлагаемого решения.
В описании программы приводятся характер выходной и входной информации, используемая информация, характеристика комплекса задач, а также техническое задание на дипломный проект.
В экономической части приведены расчеты экономического эффекта, который может быть достигнут при внедрении разработанного программного обеспечения.
В разделе «Охрана труда» обоснованы инженерно-технические мероприятия по охране труда при использовании разработанного программного продукта на вычислительной технике.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А
Файл 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', '»');
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/
А также другие работы, которые могут Вас заинтересовать | |||
1642. | Родовспоможение при несоответствии размеров плода и просвета таза матери | 20.25 KB | |
Плод извлекают за предлежащие части силой максимум 5—6 человек под строгим контролем руки акушера (во избежание глубоких травм). Родовые пути необходимо обильно смазать вазелином или маслом. | |||
1643. | Роль внешних и внутренних факторов в причинах возникновения болезней молочной железы | 21.67 KB | |
Агалактия (безмолочность) и гипогалактия (маломолочность) - нарушение лактации как следствие неправильного кормления, содержания и эксплуатации животных, результат болезней и врожденных пороков молочной железы или других органов. | |||
1644. | Роль внешних факторов и состояние организма матери в возникновении болезней беременных животных | 20.48 KB | |
Маточное кровотечение. Кровотечения из матки из-за повреждения кровеносных сосудов бывают у коров, кобыл, коз, редко у животных других видов. Внематочная беременность. | |||
1645. | Санитарно-гигиенические требования к приготовлению сред и компонентов | 19.34 KB | |
Все компоненты для приготовления разбавителей должны быть химически чистыми, проверенными на токсичность и соответствовать ГОСТу, указанному в инструкции по искусственному осеменению. | |||
1646. | Серозный и катаральный маститы: причины, особенности течения, диагностика и профилактика | 20.65 KB | |
Серозное воспаление вымени характеризуется гиперемией, большим выпотом серозного экссудата и эмиграцией лейкоцитов, преимущественно в междольковую ткань. Характеризуется перерождением железистого и покровного эпителия, его отторжением. | |||
1647. | Слабые и бурные схватки и потуги как причина патологических родов | 19.78 KB | |
Сильные потуги. Причиной бурных потуг могут быть неправильное расположение плода, его уродливость, раннее отхождение околоплодных вод. Слабые схватки и потуги. | |||
1648. | Сперма и её видовые особенности | 19.51 KB | |
Сперма – смесь спермиев (половых клеток самца) и плазмы(сыворотки). Сыворотка спермы – секрет придатков семенников и придаточных половых желез. | |||
1649. | Сперматогенез. Физиологическое значение придатков семенников, мошонки, придатков половых желез | 20.39 KB | |
По достижении животным половой зрелости в семеннике его происходят сложные процессы, сводящиеся к созреванию и формированию спермиев — сперматогенезу. | |||
1650. | Спермии, их строение, скорость и виды движения спермиев. Энергетика спермиев | 21.39 KB | |
Строение В спермии с/х. животных различают головку, шейку, тело и хвост. Скорость и виды движения спермиев. Энергетика спермиев. | |||