38460

Разработка системы управления содержимым сайта

Дипломная

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

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

Русский

2015-08-30

658.9 KB

67 чел.

67

ФЕДЕРАЛЬНОЕ  АГЕНТСТВО  СВЯЗИ

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

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

«Санкт-Петербургский государственный университет

телекоммуникаций им. проф. М.А. Бонч-Бруевича»

Санкт-Петербургский колледж телекоммуникаций

___________________________________________________________________________   

Допустить к защите

                                                                                              Заместитель директора по УР

   _____________ Н.А.Бондарчук

                                                                                                       «____»  июня  2013 г.

ДИПЛОМНАЯ РАБОТА

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

сайта      

      

Дипломник                               _______________ Мартынов В.Ю.  

                                        «____» июня  2013 г.

Руководитель                           _______________             Ерина М.А.  

                                                                                                                  «____» июня  2013 г.   

Рецензент                                 _______________            Бондарчук Н.А.

                                                                                                                  «____» июня  2013 г.  

Консультант по экономике     _______________ Минкин И.А.                                                                                                                                    

                                        «____» июня  2013 г.

Консультант по ТБ                  _______________ Савельева Г.А.    

                                        «___» июня  2013 г.

                                                                                                                  

Санкт-Петербург

2013

ФЕДЕРАЛЬНОЕ  АГЕНТСТВО  СВЯЗИ

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

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

«Санкт-Петербургский государственный университет

телекоммуникаций им. проф. М.А. Бонч-Бруевича»

Санкт-Петербургский колледж телекоммуникаций

___________________________________________________________________________      

УТВЕРЖДАЮ                                                                                   Заместитель директора по УР

_____________Н.А.Бондарчук

                                                                                            «___» __________2013  г.

З А Д А Н И Е

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

ПО СПЕЦИАЛЬНОСТИ «ПРИКЛАДНАЯ ИНФОРМАТИКА (ПО ОТРАСЛЯМ)»

Студенту Мартынову Вячеславу Юрьевичу                                                                           _

(фамилия, имя и отчество)

ТЕМА ВКР

Разработка системы управления содержимым сайта                                                                _

ВИД ВКР: Дипломная работа

ИСХОДНЫЕ ДАННЫЕ:

Язык программирования PHP                                                                                                      _

Язык структурирования и представления содержимого HTML 5                                            _

Система управления базами данных MySQL                                                                             _

Виртуальный сервер “Денвер” или его физический аналог                                                      _

СОДЕРЖАНИЕ ВКР

Наименование разделов

Объем выполнения в %

от всего задания

Срок выполнения

1

2

3

Рассмотрение видов сайта

5

06.05.2013

Аналитический обзор решений и требований, предъявляемых к CMS

5

08.05.2013

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

10

12.05.2013

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

10

16.05.2013

Проектирование БД и каталогов

10

20.05.2013

Программирование

20

28.05.2013

Анализ технических и программных характеристик

10

01.06.2013

1

2

3

Тестирование и отладка

5

03.06.2013

Расчет экономических показателей программного продукта

10

07.06.2013

Рассмотрение вопросов техники безопасности

10

11.06.2013

Заключение

5

13.06.2013

Руководитель ВКР

Ерина Марина Александровна                                                                                            _

(фамилия имя, отчество

Санкт-Петербургский колледж телекоммуникаций                                                              _

(место работы)

Начало выполнения ВКР  04 мая 2013 г.

Завершение выполнения ВКР  13 июня 2013 г.

Представление работы на рецензию _____________  2013 г.

Задание на разработку ВКР рассмотрено  на заседании цикловой комиссии «___»_________2013 г. Протокол № _

Председатель цикловой комиссии ____________________М.А.Ерина

Задание принял к исполнению "____"____________ 2013 г.

_______________

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

Оглавление

Введение 5

1. Виды сайтов 6

1.1 Определение CMS 6

1.2 Статический сайт 7

1.2.1 Преимущества статических сайтов 7

1.2.2 Недостатки статических сайтов 8

1.3 Динамический сайт 8

1.3.1 Преимущества динамических сайтов 8

1.3.2 Разделение информации и дизайна сайта 9

1.3.3 Упрощение модификации и обновления страниц на сайте 9

1.3.4 Возможность изменять контент сайта, реагируя на действия посетителя 9

1.3.5 Недостатки динамических сайтов 9

2. Эволюция web-приложений 11

3. Классификация web-приложений 12

4. Аналитический обзор решений и требований, предъявляемых к CMS 14

4.1 Классификация систем управления контентом 14

4.1.1 Простая CMS система 14

4.1.2 Шаблонная CMS система 14

4.1.3 Профессиональная CMS система 15

4.1.4 Универсальная CMS система 15

4.2 Функциональные и технологические возможности контент-систем 15

4.2.1 Готовность к распространению 15

4.2.2 Изменение дизайна и структуры CMS 15

4.2.3 Безопасность данных в CMS 16

4.2.4 Организация документооборота при публикации 16

4.2.5 Параметр «Количество посетителей в сутки» 16

4.3 Обзор рынка CMS 19

5. Разработка системы администрирования контента 26

5.1 Требования к системе администрирования контента (CMS) 26

5.2 Терминология 26

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

5.4 Структура и элементы страницы 27

5.5 Работа с системой администрирования разрабатываемой (CMS) 28

5.6 Управление разделами (страницами) 29

5.7 Добавление новостей 31

5.8 Выбор платформы для реализации проекта 33

5.9 Обоснование выбора языковых и программных средств 33

5.10 Разработка базы данных CMS 35

5.11 Структура директорий 37

5.12 Принцип работы системы 37

6. Функции конфигурационного файла и их использование 38

7. Расчет экономических показателей программного продукта 41

7.1 Расчет себестоимости создания программного продукта 41

8. Вопросы техники безопасности 47

8.1 Требования к системе управления охраной труда 47

9. Код программы 54

Заключение 65

Список используемых источников 67

Введение

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

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

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

В настоящее время любой корпоративный сайт можно представить в виде айсберга, надводная часть которого (содержимое сайта) видна пользователем, а огромная подводная часть (система администрирования) – скрыта от постороннего взора.

Пользователю сети Интернет не видно, что происходит внутри сайта, который он посещает. Но Интернет- разработчикам и их заказчикам известно, что большинство современных web-проектов строятся на основе CMS – систем управления контентом.

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

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


  1. Виды сайтов

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

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

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

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

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

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

Рассмотрим выгоды от использования систем администрирования контента, которые она дает другой стороне: профессионалам сайтостроения – Web –мастерам.

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

Система управления (администрирования) содержимым сайта или проще CMS (Content Management System) позволяет решить эту проблему. Достаточно настроить ее один раз в соответствии с дизайном, и все изменения, в дальнейшем вносимые на сайт, будут автоматически следовать оформлению сайта. При этом редактирование HTML – кода потребуется только при наличии действительно сложных дизайнерских задач.

Таким образом, разработка системы администрирования контента сайта (CMS) принесет пользу всем:

  1. Разработчик повышает качество и скорость разработки своих приложений, а следовательно и их финансовую значимость. Кроме того, предоставляя заказчику возможность самому вносить изменения на сайт, он тем самым, снимает с себя эти задачи, так как за частую поддержка сайта дело не очень доходное, но довольно хлопотное.
  2. Заказчик получает удобный инструмент оперативного редактирования своего сайта и независимость от разработчика.

  1.  Определение CMS

Система управления контентом (Content Management System – CMS) – это автоматизированный редакторский комплекс, позволяющий управлять содержанием и структурой Интернет-ресурса в режиме on-line. На практике это означает, что любой, даже незнакомый с информационными технологиями пользователь, может совершенно самостоятельно управлять содержанием своего сайта, не прибегая при этом к услугам технического персонала.

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

  1. Не требуют профессиональной технической подготовки при использовании.
  2. Могут быть успешно интегрированы во внутрикорпоративную информационную систему и служить для организации документооборота.
  3. Экономически целесообразны при организации внутрикорпоративных систем и информационных порталов.

Сайт (от англ., site, участок) – это именно участок сервера, то есть раздел, полностью посвященный какой-либо одной теме. Разумеется, практически все сайты включают в себя множество подразделов, каждый из которых может дробиться на еще более мелкие составляющие. Но в любом случае все части сайта объединяет некая общая идея, смысловая направленность, общий стиль исполнения. С точки зрения все сайты можно условно разделить на два основных вида: статические и динамические.

В 90-е годы наиболее распространенной системой управления контента была следующая: в качестве программного обеспечения использовался web-сервер, предоставляемый в составе услуги хостинга, редактор HTML-документов (от Notepad до Macromedia DreamWeaver) и FTP-клиент (например, CuteFTP, gFTP, FAR или TotalCommander). Страницы создаются с помощью редактора и размещаются на сервере с помощью FTP-клиента. Структура сайта обеспечивается ссылками с одних страниц на другие и, возможно, присутствием меню на некоторых страницах. Сейчас такую систему называют статической. Название связано с тем, что содержимое (контент) страниц находится в статических (постоянно расположенных на диске) файлах, в противоположность динамически создаваемым страницам (генерируемым на лету с помощью программы, находящейся на сервере).

  1.  Статический сайт

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

 

  1.  Преимущества статических сайтов

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

Однако, при всех своих преимуществах такие системы обладают значительными недостатками. 

  1.  Недостатки статических сайтов

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

За годы использования таких систем были разработаны решения, частично компенсирующие указанные недостатки. Первый недостаток может быть частично устранен путем вынесения меню и общих элементов навигации в отдельные файлы, что может быть сделано с помощью технологии серверных включений SSI – Server Side Includes или путем использования фреймов. Альтернативно, можно использовать специальные средства, позволяющие заменять куски HTML-текста во многих файлах одновременно. Третий недостаток может быть исключен с помощью добавления необходимых программ, написанных на языке PHP. Четвертый недостаток может быть частично компенсирован путем размещения страниц в различные папки и назначением различных прав доступа к этим папкам.

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

  1.  Динамический сайт

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

Существует несколько способов генерации динамических страниц:

  1. Первым вариантом может быть объединение нескольких (двух и более) отдельных частей в одну страницу – это самый простой способ генерации.
  2. Вторым вариантом является заполнение шаблонной страницы какой-либо информацией, хранящейся отдельно или получаемой в результате работы алгоритма (например, в результате вычислений).
  3. Третьим, и, пожалуй, самым распространенным вариантом является сочетание первых двух во всевозможных вариациях, т.е. страница собирается из нескольких кусочков, в которые при этом вносятся различные изменения.

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

  1.  Преимущества динамических сайтов

  1. Разделение информации и дизайна
  2. Упрощение модификации и обновления страниц
  3. Возможность изменять контент, реагируя на действия посетителя
  4.  Разделение информации и дизайна сайта

 

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

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

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

  1.  Упрощение модификации и обновления страниц на сайте

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

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

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

  1.  Недостатки динамических сайтов

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

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

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

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

  1.  Эволюция web-приложений

Сервис WWW начал функционирование в интернет в 1991 году, первый web-сервер позволял хранить набор статических web-страниц языка разметки гипертекста(HTML). С практической точки зрения, можно было создать web-сайт, представляющий собой своеобразную визитку, что не смотря на свою простоту пользовалось большой популярностью, благодаря возможности получить информацию любого рода в интуитивно понятной и красочной форме.

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

Разработка web-приложения, как такового, стала возможной с внедрением CGI, что позволяло оперировать некоторой логикой. Хотя в действительности дальше некоторых действий над формами и отслеживания сеанса пользователя, здесь дело не пошло и о более менее полноценной платформе для разработки прикладных приложений, можно говорить с появлением некоторых специализированных Server-side языков сценариев предназначенных для интеграции с HTML позволяющих динамически генерировать страницы.

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

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

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

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

Идея паттерна MVC, лежит в разделении приложения, на несколько уровней, применительно к web-приложениям, паттерн нашел реализацию в виде Систем Управления Содержимым(Content Management System), что позволило упростить проектирование и разработку системы, дало возможность работы над приложением нескольким людям, облегчило процесс отладки и сопровождения, сократило сроки реализации приложения. Вследствие чего существующие приложения (уровня сайта-визитки, сайта-каталога, интернет – магазина) были усовершенствованы, и появилась возможность создавать новые, значительно более сложные приложения.

  1.  Классификация web-приложений

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

  1.  Визитка – как правило, это общая информация о фирме, прайс-лист, реквизиты, план проезда и т.п. Т.е. набор страниц; возможно имеется форма для обратной связи.
  2.  Витрина – сайты этого типа помимо стандартных составляющих сайта-визитки содержат еще и каталог товаров или услуг. На страницах сайта размещено подробное описание этих продуктов, которое может содержать различные фотографии, схемы, презентации, подробную документацию и т.д. Часто в каталоге публикуется стоимость продукции и услуг. Приложение не содержит системы ведения, заказов, и покупки осуществляются либо посредством электронной почты, либо с помощью других средств связи, в любом случае заказ обслуживается менеджером.
  3.  Электронный магазин/B2C – электронные магазины во многом похожи на каталоги (сайты-витрины). Ключевое их отличие заключается в том, что они имеют либо собственную систему формирования, обработки, проведения и прочих операций по заказам, либо интегрируются с существующей автоматизированной системой предприятия. Однако эта категория условна, сюда не только относятся электронные магазины, в классическом представлении, а любое приложение реализующее так называемую схему B2C (Business To Consumer), т.е. любое приложение, которое используется для сбыта товара конечному потребителю. Помимо стандартных магазинов, это различные интернет-аукционы, электронные биржи труда и подобное.

Рис. 1. Классификация web-приложений

  1.  B2B – и соответственно, приложения, попадающие под схему B2B(Business To Business), это приложения для работы с дилерами, так называемые электронные торговые площадки. Сюда можно отнести платежно-расчетные системы, биржи, партнерские программы, и подобное. Это довольно тяжеловесные приложения, которые, как правило, изначально проектируются в качестве составляющего модуля существующей системы управления.
  2.  Промо-сайт – Развитие client-side языков, предназначенных для интеграции в HTML, такие как Java Script, ActiveX, и применение существующих языков, таких как Action Script, и Java аплетов, дало существование новой категории web-приложений. Так называемых промо-сайтов. Вариаций подобных решений очень много, как правило несут чисто имиджевую функцию, представляют собой своеобразные открытки, очень красочные и динамичные.
  3.  Информационный сайт – Одним из распространенных методов продвижения, организации в сети, это формирование так называемого «интернет коммунити», т.е. сообщества постоянных посетителей, сайта. Как правило, такие сайты содержат большое количество информации, в той области, в которой работает предприятие, эта информация часто обновляется и подобные сайты имеют довольно большое количество средств для общения между посетителями сайта.
  4.  Корпоративное представительство – Как видно из представленной выше схемы, корпоративные сайты выполняют одновременно как функции сайта-визитки, так и электронного магазина или каталога. Дополнительно корпоративные представительства содержат B2B-системы, позволяющие взаимодействовать с партнерами. Это соответственно наиболее продвинутое приложение из описанных, как правило, данное приложение состоит из нескольких систем управления, которые отвечают за функционирование, сервисов унаследованных от своих предшественников, и здесь уже имеется собственная система управления организующую документооборот, управление, и прочие функции по организации управления предприятием. Применяется для крупных предприятий, с большой дилерской и розничной сетью, обладающей сложной организацией и большим количеством удаленных друг от друга узлов.
  5.  Портал – это наиболее сложные web-приложения, которые объединяют в себе все перечисленное, как правило, такое приложение располагается, более чем на одном интернет – ресурсе, одновременно функционирует на различных системах, функционирует в различных сетях, интегрируется с несколькими системами управления.

  1.  Аналитический обзор решений и требований, предъявляемых к CMS
  2.  Классификация систем управления контентом

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

Для обобщенной классификации используются следующие критерии:

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

  1.  Простая CMS система

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

Технологичность. Динамическое формирование страниц (каждый раз при запросе пользователя), ограниченная пропускная способность (в зависимости от аппаратного обеспечения) – до 3 000-5 000 посетителей в сутки. Система инсталлируется разработчиком.

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

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

  1.  Шаблонная CMS система

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

Технологичность. Динамическое формирование страниц или с использованием кэширования данных. В зависимости от методов формирования страниц – от 5 000 до 50 000 посетителей в сутки. Инсталлируется разработчиком.

Совместимость (аппаратная и программная). Система совместима с определенными платформами и типами СУБД. Попытка внедрения дополнительных модулей, так же, как и в предыдущем случае, ограничена.

Масштабируемость. Достигается путём перевода сайта на новую, более сложную, версию системы управления контентом.

 

  1.  Профессиональная CMS система

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

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

Совместимость (аппаратная и программная). Совместимость с различными программно-аппаратными платформами (наличие Application Programming Interface – API).

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

  1.  Универсальная CMS система

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

Технические особенности. Расширенные возможности АPI, наличие готовых прикладных решений, в т.ч. с участием программных продуктов третьих фирм. Система полностью приспособлена к внутрикорпоративному использованию в связке с ERP-пакетами. Наличие сертифицированной системы обеспечения безопасности – разграничение прав доступа к контент-системе на внутрикорпоративном уровне. Кэширование формируемых динамических страниц. Пропускная способность – не ограничена.

Совместимость (аппаратная и программная). Совместимость с различными программно-аппаратными платформами (наличие API).

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

  1.  Функциональные и технологические возможности контент-систем

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

  1.  Готовность к распространению

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

  1. коробочный продукт – готовое ПО, позволяющее установить систему автоматически и самостоятельно ее настроить;
  2. разработчик сам устанавливает и настраивает контент-систему на сервере заказчика;
  3. контент-система проектируется и разрабатывается под каждый отдельный проект и устанавливается разработчиком.

  1.  Изменение дизайна и структуры CMS

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

По возможности изменения структуры системы делятся на те, которые позволяют:

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

  1.  Безопасность данных в CMS

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

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

В свою очередь режим доступа пользователей может иметь несколько видов:

группы пользователей, имеющие те или иные права на доступ к статьям и разделам. Например, редактор новостей, модератор конференций и т.д.;

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

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

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

  1.  Организация документооборота при публикации

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

  1.  Параметр «Количество посетителей в сутки»

На самом деле этот показатель даёт пользователю информацию не столько о том, сколько посетителей может «пропустить» сайт, а определяет отказоустойчивость системы.

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

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

Пропускная способность ресурса зависит от трех параметров:

  1. принципа формирования страниц при запросе пользователя: динамический, статический, с использованием интеллектуального кэширования. Наибольшую пропускную способность ресурса обеспечивает интеллектуальное кэширование страниц сайта, наименьшую – динамическое формирование страниц;
  2. использования тех или иных СУБД для хранения данных;
  3. аппаратного обеспечения, непосредственно не относящегося к устройству самой контент-системы.

4.2.6   Наличие визуального редактора

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

4.2.7 Возможность импорта данных из офисных приложений

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

4.2.8 Требования поисковой оптимизации

Современные поисковые системы предъявляют повышенные требования к формату страниц сайта. Поисковые системы гораздо более чувствительны к отклонениям от стандарта HTML, чем современные браузеры. Если страница содержит непонятные элементы, браузер все равно пытается ее отобразить, тогда так поисковая система может просто проигнорировать. Для того чтобы увидеть какие страницы создает система управления контентом, следует взглянуть на готовые сайты, сделанные на базе данной системы (например, собственный сайт системы). Проверить совместимость страницы со стандартом HTML можно с помощью HTML-валидатора. Предпочтение нужно отдавать системам, создающим наиболее совместимый со стандартом код наименьшего объема. Адреса основных страниц должны по возможности быть простыми и не содержать в себе знаков вопроса с числовыми атрибутами. Кроме того, система должна предоставлять возможность редактировать заголовок каждой HTML-страницы и META-теги, а также задавать альтернативный текст для размещаемых рисунков.

4.2.9  Расширяемость и масштабируемость

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

4.2.10   Система обновлений

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

4.2.11  Система резервного копирования

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

4.2.12 Структура и навигация

Навигация на сайте должна максимально соответствовать структуре. Пользователь должен иметь возможность легко найти необходимую ему страницу, причем не единственным способом, а несколькими. В качестве основного элемента навигации обычно используется меню. На корпоративных сайтах оно имеет несколько уровней вложенности. В качестве дополнительных средств навигации обычно используются карта сайта и средства поиска по сайту. Кроме того, чтобы дать пользователю понять, где он находится, часто используются так называемые «хлебные крошки», указывающие положение страницы в иерархии сайта (например: Главная > Продукты > Программные продукты > Sun Java System).

4.2.13 Системные требования

Системные требования определяются языком программирования и сервером баз данных, используемыми в системе. Наиболее часто в качестве языка программирования используется PHP или Perl, а в качестве сервера баз данных – MySQL или PostgreSQL. Такие системы могут быть размещены практически на любом коммерческом web-хостинге, который стоит относительно недорого, но могут иметь ограничения по масштабируемости.

Если посещаемость сайта больше 100 тысяч хитов в день, или число страниц превышает 100 тысяч, рекомендуется использовать системы на базе языка Python или Java-сервлетов. В качестве базы данных могут использоваться как открытые (MySQL, PostgreSQL), так и коммерческие решения (Oracle, DB2, MSSQL). Такие системы управления контентом обычно требуют выделенный (или виртуальный выделенный) сервер хостинга.

Существуют системы управления контентом, использующие xml для хранения данных, например Apache Forrest.

4.2.14 Возможность отказа от CMS системы

Еще один немаловажный фактор, показывающий, может ли пользователь сохранить введенные данные, если по каким-то причинам решил отказаться от использования контент - системы. Желательно, чтобы данные из контент - системы конвертировались в какой-то распространенный формат: текст, формат MS Word и Excel, HTML, XML.

  1.      Обзор рынка CMS

4.3.1 Группы заказчиков по составу и уровню требований, предъявляемых к решениям на базе CMS

  1. Торговые предприятия:
  2. Предприятия и компании розничной торговли, дилеры

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

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

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

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

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

Многие компании искусственно ограничивают для своих сотрудников доступ к web-сайту и отказываются от интеграции своих рабочих БД в интернет, т.к. опасаются за безопасность данных, а вкладывать значительные средства в ее обеспечение не готовы.

  1. Предприятия оптовой торговли.

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

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

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

  1. Производственные предприятия.

Для данной группы потенциальных заказчиков актуальным является не только создание представительских ресурсов, но и возможность организовать работу (т.н. «виртуальное координирование») с дилерами, поставщиками, партнерами, используя возможности Интернет. Речь об организации сетей internet/intranet, создании дилерских площадок, разработке и внедрении механизмов для проведения электронных торгов, аукционов и тендеров. Что касается последних, то они зачастую организуются в рамках отраслевых порталов.

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

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

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

  1. Предприятия банковской и финансовой сферы.

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

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

  1. Предприятия сферы услуг.

Для сферы услуг возможности, предоставляемые Интернет, наиболее актуальны с точки зрения их продвижения к конечному потребителю, особое место занимают услуги, оказываемые on-line..

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

4.3.2 Основные тенденции рынка CMS

Говоря о тенденциях рынка систем управления контентом, следует еще раз подчеркнуть принципиальное отличие систем управления web-контентом (CMS) от систем управления электронным документооборотом предприятия, использующих web-интерфейс..

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

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

4.3.3  Обзор технических решений для интернет -ресурсов

CMS можно условно разделить на 2 вида – коммерческие и некоммерческие, или же платные и бесплатные. Основное различие между этими системами – в цели разработки: коммерческие системы разрабатываются компаниями, с целью продажи и получения прибыли, а системы с открытым исходным кодом разрабатываются индивидуальными программистами и некоммерческими организациями (такими, как университеты), заинтересованными в развитии и использовании данной системы.

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

Каждая из платных или бесплатных систем может, в свою очередь, делиться на следующие типы:

  1. С открытым кодом – предоставляется в форме открытого исходного кода, не требует декодирования, позволяет изменить функциональность в любой момент;
  2. С криптованным кодом – предоставляется в закодированном виде, никаких изменений в коде делать нельзя, для работы требуется специальное дешифровальное ПО. Все обновления, как правило, требуют полной перезаливки исходного кода;
  3. На сервере владельца – владелец CMS выделяет вам место на своем сервере без доступа к исходникам. Все управление осуществляется через контрольную панель.

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

Минусы криптованных CMS это в первую очередь отсутствие гибкости при изменениях, трудность переноса и т. д.; к плюсам же можно отнести повышенную защищенность от взломов и от воровства исходных кодов.

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

4.3.4 Преимущества систем с открытым исходным кодом

  1. Система разрабатывается большим количеством разработчиков, каждый из которых использует систему для своих задач, что обеспечивает высокое качество кода.
  2. Большое количество независимых компаний предлагают услуги по внедрению и поддержке системы.
  3. Нет лицензионных отчислений и ограничений использования. Кроме того, если вы разработаете свою систему на базе системы с открытым исходным кодом, вы сможете ее свободно распространять, сохраняя исходный код открытым.

4.3.5 Недостатки систем с открытым исходным кодом

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

4.3.6  Список наиболее популярных решений

NetCat относится к классу легких систем. Показатель отчуждаемости и переносимости системы наиболее высок среди всех аналогичных CMS. Кроме того, NetCat – наиболее «коробочный» продукт. Только 15% внедрений являются внутренними, 40% делаются партнерами, а больше всего, 45%, – самими покупателями.

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

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

Среди компаний, использующих NetCat, – «Сотовик», «Новатэк», «Росбанк», «Сыктывкарский фанерный завод».

Текущая версия системы – Netcat 5.1. Существует стартовое решение NetCat Small Business и издание с расширенной функциональностью – NetCat Extra.

Среди уникальных особенностей системы

  1. управление шаблонами данных – возможность конструирования практически любой структуры данных;
  2. высокая адаптивность под индивидуальные задачи;
  3. работа на стандартных настройках абсолютного большинства хостинг -провайдеров.

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

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

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

На данный момент Bitrix – наиболее функциональная CMS на российской рынке. Система относится к среднему классу.

Наиболее известные компании, использующие Bitrix – Elcomsoft, Ritlabs.

Текущая версия системы – Bitrix 12.5.1. Из стандартных комплектаций решения на рынке присутствуют: «Старт», «Эксперт», «Бизнес», «Web-Аналитика». Полнофункциональные версии имеют модификации под различные СУБД – MySQL и Oracle.

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

Система является оптимальным решением для крупных и средних сайтов, насыщенных различными функциональными модулями. Удобный интерфейс, «легкий» дизайн, возможность вести свои разработки на предоставляемой платформе. CMS-система Bitrix – практически единственный «коробочный» продукт среднего класса, что делает его наиболее перспективным на рынке.

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

Относительно невысокая функциональность компенсируется высокой юзабилити и практически полным отсутствием требований к пользователю. Возможность разработки и настройки сайта реализуется путем отделения back office от front office в отдельную часть – «Конфигуратор», который могут использовать непосредственно разработчики.

Текущая версия системы – Optimizer 2.5.

Из наиболее известных компаний, использующих технологию Optimizer – Ericsson, «Мир аэрофлота», «Совинтел».

К достоинствам системы можно отнести быстродействие, наличие подробной документации. Также стоит отметить хорошо проработанный модуль «On-line магазин» с элементами CRM, справочной информацией по курсам валют, налогам и пр.

Недостатки системы – техническое требование платформы Windows 2000 Server + MS SQL. Еще один минус данного решения – отсутствие внутренней системы сбора статистики.

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

RBC Content – типичный пример внутренней системы, поставляемой в качестве отдельной услуги в комплексе работ по созданию сайта. Фирма RBC Soft – одна из крупнейших компаний-разработчиков на рынке создания сайтов. Поэтому, хотя показатели CMS-системы уступают большинству рассматриваемых в обзоре решений, мы не можем не упомянуть о ней в связи с большим количеством ее внедрений. Хотя это говорит скорее не о популярности системы как таковой, а о популярности RBC Soft как разработчика сайтов.

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

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

Текущая версия системы – 5.0 (Standard Edition и Enterprise Edition).

Из наиболее известных компаний, использующих RBC Contents, – RBC, «МТУ-Информ», ГУМ, РОСНО, Philips, «Лукойл».

Система по своему позиционированию должна занимать нишу «промышленной», но этому мешает средний уровень технической реализации. Юзабилити решения оставляет желать лучшего, однако этот продукт займет свою нишу как звено комплексной системы, поставляемой компанией-разработчиком. Как самостоятельный продукт RBC Contents имеет весьма средние перспективы, но, учитывая характер поставки системы, ее присутствие на рынке может стать весьма значительным.

Satistika (разработчик компания Individ) – одна из самых функциональных CMS в Рунете. Общий уровень системы можно оценить как высокий, что характеризуется и относительно высокой ценой дистрибутива – 2000$. Решение хорошо отчуждаемо, около 50% внедрений производится покупателями. Относительно небольшое количество внедрений системы можно объяснить достаточно высокой стоимостью, техническими ограничениями, а также требованиям, предъявляемыми к разработчикам.

Система имеет государственную регистрацию.

Наиболее известные компании, использующих систему, – Xerox, «Компьютера», МДМ-банк.

Текущая версия системы: Saitistika 5.0.

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

К недостаткам системы относятся перегруженность административного интерфейса, технические требования (ОС Windows, MS SQL), отсутствие модульной структуры.

Из уникальных наработок системы можно выделить

  1. продвинутую систему логирования и статистики;
  2. встроенный модуль CRM (Customer Relations Managment) – системы обеспечения автоматического управления заказами и взаимоотношениями с клиентами.

Самое большое преимущество Satistika – функциональность. Наиболее полезна эта CMS будет компаниям, имеющим штатных профессиональных разработчиков. Высокий уровень отчуждаемости приближает ее к коробочным продуктам высокой ценовой категории. Наличие партнерских программ, обширной документации, открытого исходного кода и курсов для разработчиков делают систему привлекательной для коммьюнити девелоперов (что, правда, существенно ограничивается использованием ОС Windows).

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

Dynasite не является CMS в классическом понимании этого термина и скорее напоминает платформу для разработок. С этой точки зрения систему можно отнести к классу «тяжелых» решений. Небольшое количество внедрений и невысокая отчуждаемость компенсируются качеством и сложностью разрабатываемых систем. Сотрудничество с известной компанией Vignette также характеризует систему как целый сервер приложений, на котором можно реализовать практически любой функционал.

Непосредственно функции по управлению контентом реализованы слабо. Неудобный в работе интерфейс, отсутствие внятной навигации, нехватка даже стандартных возможностей. Нет смысла критиковать Dynasite с позиций CMS-систем среднего класса – по «внешним» признакам он заведомо проиграет. Однако заложенные в систему возможности могут оказать существенное влияние на становление рынка тяжелых систем. Недаром почти 90% конкурентов назвали DynaSite одной из самых мощных CMS.

Среди компаний, использующих DynaSite, – «МегаФон», фондовая биржа РТС, магазин «Озон». Большинство сайтов, построенных на базе DynaSite, имеют сложную программную часть, что опять же характеризует систему как среду для разработок, нежели внешнюю CMS.

Текущая версия – DynaSite 8. Существуют две модификации системы – Standard и Enterprise. Также разработаны решения для отдельных отраслей, например, конфигурация для хостинг - провайдеров.

Среди несомненных достоинств решения – хорошая масштабируемость, возможность интеграции с внешними системами, качественно проработанные модули «электронной коммерции» и «менеджера почтовых рассылок». Система производит впечатление целой платформы для разработок. Внешняя часть, front office, проработана слабо, поэтому для конечного пользователя DynaSite не лучший вариант. Нет смысла использовать подобную систему на средних и малых сайтах, зато она имеет целый ряд преимуществ при реализации на больших, сложных проектах. В дальнейшем у DynaSite есть хорошие перспективы стать лидером рынка в сегменте дорогих систем (особенно в тандеме с Vingette).

Q-Publishing – одна из наиболее популярных CMS в Рунете. С помощью грамотного позиционирования ее разработчикам удалось добиться хорошего уровня цитируемости и узнаваемости своего бренда. Общий уровень системы можно оценить как средний. Из ее особенностей стоит отметить значительный уровень внедрений на зарубежных сайтах. Причина тому – реализация партнерских программ с софтверными компаниями, занимающимися распространением системы среди зарубежных потребителей. Также это сказывается и на ценовой политике компании – стоимость лицензии более $1000.

Среди самых крупных российских компаний, пользующихся Q-Publishing, – ЮКОС и ABBYY. Среди самых крупных иностранных компаний AOL, SUN Microsystems, Canon.

Текущая версия системы – 7. Есть три модификации продукта: Light, Standard и Professional. Отчуждаемость системы можно оценить как невысокую (примерно 80% внедрений являются внутренними). Однако по этому показателю данное решение превосходит некоторые коробочные продукты. В целом система отличается высокой функциональностью. Большинство возможностей реализовано на достаточно высоком уровне, разработаны интерфейсы администрирования различных модулей.

Из уникальных наработок системы следует выделить

  1. Mаsquerade Filter – механизм, дающий возможность преобразовывать URL динамических страниц в приемлемый для поисковых роботов вид;
  2. морфологический поиск (разработан совместно с ABBYY), который позволяет производить поиск с учетом смысловой нагрузки.

Система Q-Publishing производит впечатление хорошо сделанной профессиональной платформы. Неплохо проработаны возможности параллельного развития – API, интеграция с 1C. Использование системы по преимуществу на зарубежных сайтах также говорит в ее пользу – западный рынок CMS более устойчив, чем российский. Решение имеет удобный интерфейс и средний уровень юзабилити.

  1.  Разработка системы администрирования контента
  2.  Требования к системе администрирования контента (CMS)

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

Основные требования, предъявляемые к CMS, заключаются в следующем.

Система должна позволять:

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

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

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

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

  1. Динамически формируемые страницы, с системой администрирования, которая позволяет добавлять, удалять и редактировать их.
  2. Блоки динамически формируемых новостей, снабженные системой администрирования, позволяющие создавать, удалять, осуществлять правку новостей редактору, которому для этого не обязательно знать язык HTML.
  3. Блок «Фотоальбом», позволяющий посетителям просматривать фотографии, размещаемые администратором сайта при помощи страницы администрирования данного Web – приложения.

  1.   Терминология

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

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

Рассмотрим сайт, имеющий следующую структуру:

  1. Главная
  2. Контакты
  3. Видео
  4. Новости:
  5. Чем полезно море?
  6. Тестовая новость про море

С точки зрения CMS, каждую уникальную информационную страницу будем именовать страницей. А зону сайта с одной или несколькими уникальными страницами будем называть разделом страниц.

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

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

С помощью CMS можно создавать и редактировать:

  1. Разделы страниц, предназначенные для объединения страниц в группы.
  2. Страницы – информационные страницы сайта.
  3. Контент – составляющие элементы страницы.

  1.    Структура и элементы страницы

Если попытаться разбить информационное наполнение страниц на логические элементы, то каждая страница может содержать:

  1. Заголовки.
  2. Абзацы (блоки текста).
  3. Изображения.
  4. Ссылки.
  5. Таблицы.

С точки зрения CMS, каждая страница содержит блок контента, которым могут быть:

  1. Заголовки.
  2. Блоки текста вместе с изображениями; изображения часто служат для иллюстрации текста и в тоже время изображения обычно имеют подпись, поэтому блоки текста целесообразно объединить с изображениями;
  3. Ссылки, в том числе на другие страницы из CMS.
  4. Таблицы.

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

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

Например, «Заголовок» может иметь стили:

  1. Название страницы.
  2. Обычный заголовок.
  3. Важный блок страницы.
  4. Заголовок примечания.

Абзацу могут быть присвоены следующие стили:

  1. Обычный текст.
  2. Текст с отступом.
  3. Подпись к картинке.
  4. Примечание.

Стили содержат не только оформление, но и логику поведения элементов, например, у элемента «Ссылка» могут быть стили:

  1. Открыть ссылку в новом окне.
  2. Открыть ссылку в текущем окне.
  3. Открыть ссылку во всплывающем окне.

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

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

  1.   Работа с системой администрирования разрабатываемой (CMS

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

При обращении в адресной строке браузера к адресу:

http://www.имя_сайта.имя_домена/admin/

или http://www.имя_сайта.имя_домена/admin/index.php

пользователь попадает на страницу авторизации (Рис. 5.1).

Рис. 5.1. Авторизация в  CMS

В случае успешной авторизации, CMS позволит выполнять следующие задачи:

  1. Управление страницами.
  2. Управление новостями.
  3. Управление файлами сервера.
  4. Доступ к разделу справки.
  5. Управление ключевыми словами страниц и новостей.
  6. Управление метаданными страниц и новостей.

Метаданные страниц и новостей включают в себя уникальную ссылку, контент(содержимое)  и информацию для заголовка и метатегов страницы сайта: заголовок страницы (Тег <TITLE>), описание страницы (метатег <DESCRIPTION>), ключевые слова (<KEYWORDS>).

Работа над страницей как структурным элементом позволяет осуществлять над ней следующие действия:

  1. Создание.
  2. Редактирование (изменение метаданных страницы).
  3. Удаление.
  4. Скрытие/отображение в главном меню сайта.
  5. Редактирование страницы (работа с контентом).

CMS должна обеспечивать следующие операции с контентом:

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

  1.   Управление разделами (страницами) 

Раздел меню – это гиперссылка ведущая на определенную страницу сайта. Создание нового раздела осуществляется через систему CMS. На странице “Управление страницами сайта”, системы администрирования (Рис. 5.2), выводиться список существующих разделов (страниц), доступных для вывода в главное меню.

Рис. 5.2. Управление разделами(страницами) сайта

Для создания нового раздела следует перейти по ссылке «Добавить новую страницу». Открывшаяся форма создания новой страницы (Рис. 5.3), содержит шесть полей:

  1. Имя страницы.
  2.  URL страницы.
  3. Контент страниц.
  4. Ключевые слова для страницы
  5.  META- теги для страницы

А так же переключатель типа «Выпадающий список»:

  1. Отображение в главном меню.

Который отвечает за отображение страницы как раздела в главном меню сайта.

При нажатии кнопки сохранить, введенные данные заносятся в базу данных; в случае успешного добавления страницы выводится сообщение об успешно выполненной операции (Рис. 5.4).

Рис. 5.3. Создание новой страницы

Рис. 5.4. Успешное добавление страницы

5.6.1 Редактирование разделов(страниц)

Процесс редактирования разделов(страниц) сайта, мало чем отличается от создания, за исключением выбора кнопки “Редактировать” (Пиктограмма) возле уже существующей записи на странице  «Управление страницами сайта» (Рис. 5.2).

 

  1.   Добавление новостей

Управление, в том числе добавление новых новостей осуществляется на странице  «Управление новостями сайта» (Рис. 5.5). При обращении к ссылке “Добавить новую новость” пользователь переходит на страницу добавления новой новости с помощью онлайн - редактора (Рис. 5.6). Данный редактор – это продукт стороннего разработчика, называется FCKeditor и бесплатно распространяется в соответствии с лицензией GNU Lesser General Public. FCKeditor имеет интуитивно понятный интерфейс панели управления, очень похожей на панели редактирования содержимого таких известных редакторов, как MC Word от Microsoft или Open Word от Open Office для Linux.

Страница создания новой новости (Рис. 5.6), содержит шесть полей:

  1. Имя новости.
  2.  URL новости.
  3. Контент новости.
  4. Ключевые слова для новости
  5.  META- теги для новости

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

 

Рис. 5.5. Страница управления новостями

Рис. 5.6. Страница добавления новой новости в паре с визуальным - редактором FCKeditor

5.7.1 Редактирование новостей

Процесс редактирования новостей, мало чем отличается от создания, за исключением выбора кнопки “Редактировать” (Пиктограмма ) возле уже существующей новости на странице  «Управление новостями сайта» (Рис. 5.5).

5.7.2 Раздел справки

Была разработана страницы справки (Рис. 5.7), на которой подробно изложены шаги управления CMS.

Рис. 5.7. Справочная информация CMS

  1.  Выбор платформы для реализации проекта

  1.  Языковой:
  2.  HTML 5.0;
  3.  PHP версии 5 и выше;
  4.  MySQL.
  5.  Программный:
  6.  Photoshop CS5;
  7.  ACDSee v.6;
  8. Денвер (PHP, PERL, MYSQL, Apache);
  9.  Notepad++;
  10. FCKeditor 4.1;
  11.  Adobe Dreamweaver CS4.

  1.  Обоснование выбора языковых и программных средств

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

Принципы гипертекстовой разметки

HTML является описательным языком разметки документов, в нем используются указатели разметки (теги). Теговая модель описывает документ как совокупность контейнеров, каждый из которых начинается и заканчивается тегами, то есть документ НТМL представляет собой не что иное, как обычный АSСII – файл, с добавленными в него управляющими НТМL – кодами (тегами). Поскольку HTML произошел от SGML, в нем разрешено использовать только три управляющих символа: горизонтальную табуляцию, перевод каретки и перевод строки. Это облегчает взаимодействие с различными операционными системами.

PHP (Personal Home Pages) – это серверный язык создания сценариев (или стороны сервера), разработанный специально для web. В HTML-страницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется Web-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы.

Разработка РНР была начата в 1994 г. и вначале выполнялась одним человеком,

Расмусом Лердорфом (Rasmus Lerdorf). Этот язык был принят рядом талантливых людей и претерпел три основных редакции, пока не стал широко используемым и зрелым продуктом, с которым мы имеем дело сегодня. К январю 2001 г. он использовался почти в пяти миллионах доменов во всем мире, и их число продолжает быстро расти. Количество доменов, в которых в настоящее время используется РНР, можно выяснить на странице http://www.php.net/usage.php.

РНР – это продукт с открытым исходным кодом (Open Source). У пользователя имеется доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

Первоначально РНР являлось сокращением от Personal Home Page (Персональная начальная страница), но затем это название было изменено в соответствии с рекурсивным соглашением по наименованию GNU (GNU = Gnu's Not Unix) и теперь означает РНР Hypertext Preprocessor (Препроцессор гипертекста РНР).

В настоящее время последней версией РНР является PHP 5.4

Адрес начальной страницы для РНР – http://www.php.net

Адрес начальной страницы для Zend – http://www.zend.com

В Число конкурентов PHP входят Perl, Active Server Pages(ASP),Java Server Pages(JSP).

PHP обладает множеством преимуществ по сравнению с этими продуктами, среди которых наиболее значительными являются:

  1. Высокая производительность.
  2. Наличие интерфейсов ко многим системам баз данных.
  3. Встроенные библиотеки для выполнения многих общих задач, связанных с web.
  4. Низкая стоимость.
  5. Простота изучения и использования.
  6. Переносимость.
  7. Доступность исходного кода.

MySQL. – очень быстрая, надежная система управления реляционными базами данных (СУРБД). База данных позволяет эффективно хранить, искать, сортировать и получать данные. Сервер MySQL управляет доступом к данным, позволяя работать с ними одновременно нескольким пользователям, обеспечивает быстрый доступ к данным и гарантирует предоставление доступа только имеющим на это право пользователям. Следовательно, MySQL является многопользовательским, многопотоковым сервером. Он применяет SQL (Structured Query Language –язык структурированных запросов), используемый по всему миру стандартный язык запросов в базы данных. MySQL появился на рынке в 1996 г., но его разработка началась еще в 1979 г. В настоящее время, по прошествии десяти лет своего существования, эта система завоевала приз читательских симпатий журнала Linux Journal.

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

К конкурентам MySQL, помимо прочих относятся, PostgreSQL, Microsoft SQL Server, Oracle.

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

Web-сервер Apache – это программа, которая исполняет функции http-сервера. Именно с ее помощью и будет функционировать web – сервер. Эта программа исполняет все необходимые функции, под ее руководством работает большинство ресурсов сети. Данная CMS не исключение, в силу гибкости и универсальности Apache использует именно этот сервер.

  1.  Разработка базы данных CMS

сайт управление контент страница

Функционирование разрабатываемой CMS основывается на использование базы данных, в которой будет храниться поступаемая от административных(в том числе пользовательских) скриптов информация.

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

На данном этапе разработки для работы системы используется пять таблиц:

  1.  Admin – таблица для хранения пользователей и их паролей;
  2.  Page – таблица для хранения страниц сайта;
  3.  News – таблиц для хранения новостей сайта;
  4.  Files – таблица для хранения данных о загруженных файлах;
  5.  Log – таблица, для хранения информации о попытках входа в административную часть сайта: удачных(1) и неудачных(0).

Тип данных для поля ID во всех таблицах выбран исходя из того, что, для небольшого сайта вполне достаточно зарезервировать 9999 ячеек для новостей, страниц и прочих данных будущего сайта; для поля используется тип INT; так- же полю присвоено свойство “AUTO_INCREMENT”, для невозможности создания записи с одинаковым ID.

Поле Title в таблицах “ Page” и “News” имеет максимальную длину 255 символов поскольку число букв в названии статей может быть различным. Использование полей переменной длины (тип VARCHAR, а не CHAR) позволяет избежать хранения ненужной информации, поэтому длина поля определяется максимально возможными или достаточными для большинства записей значениями.

В таблице Admin хранятся учетные записи пользователей, необходимые для авторизации. То есть при вводе в форму авторизации пароль введенный пользователем под своим «логином», сверяется с паролем занесенным в базу данных. Стоит отметить что пароли в колонке Password хранятся в зашифрованном(md5 - хеш) виде. Это обеспечивает механизм защиты от не санкционированного входа в систему администрирования посторонних лиц. В дальнейшем при развитии системы планируется ввести в таблицу поле категории, для разграничения полномочий между пользователями системы, такими как администратор сайта, редактор контента и т.д.

В таблице Files для повышения производительности системы все изображения хранятся в директории «www/userfiles», а в базе данных находятся их имена,  пути к файлам изображений и их описание, что позволяет кешировать все изображения на стороне HTTP-сервера. Максимальная длинна пути в большинстве операционных систем ограничивается 255 символами.

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

Таблица 1

Admin – таблица для хранения пользователей и их паролей

Поле

Тип

Ноль

Комментарии

id

int(4)

Нет

Уникальный индекс пользователя

login

varchar(255)

Нет

Логин пользователя

password 

varchar(255)

Нет

Пароль пользователя

name

varchar(255)

Нет

Имя пользователя

email

varchar(255)

Нет

E-mail пользователя

Таблица 2

Page – таблица для хранения страниц сайта

Поле

Тип

Ноль

Комментарии

id

int(4)

Нет

Уникальный идентификатор страницы

title 

varchar(255)

Нет

Имя страницы для отображения в меню

title_url

varchar(255)

Нет

URL для отображения в адресной строке

content

mediumtext

Нет

Контент страницы

menu

int(1)

Нет

Отображать или нет в главном меню сайта

keywords

varchar(255)

Нет

Ключевые слова страницы

description

varchar(255)

Нет

META- теги страницы

Таблица 3

News – таблиц для хранения новостей сайта

Поле

Тип

Ноль

Комментарии

id

int(4)

Нет

Уникальный идентификатор новости

title 

varchar(255)

Нет

Имя новости для отображения в списке

title_url

varchar(255)

Нет

URL для отображения в адресной строке

content

mediumtext

Нет

Контент новости

keywords

varchar(255)

Нет

Ключевые слова новости

description

varchar(255)

Нет

META- теги новости

date

timestamp

Нет

Дата создания новости

Таблица 4

Files – таблица для хранения данных о загруженных файлах

Поле

Тип

Ноль

Комментарии

id

int(4)

Нет

Уникальный идентификатор файла

name

varchar(255)

Нет

Название файла

description

varchar(255)

Нет 

Описание файла 

userfile

varchar(255)

Нет 

Путь к файлу

Таблица 5

Log – таблица, для хранения информации о попытках входа

Поле

Тип

Ноль

Комментарии

id

int(4)

Нет

Уникальный идентификатор записи

login 

varchar(255)

Нет

Логин пытавшийся войти в админку

date

datetime

Нет

Дата попытки войти в админку

ip

varchar(16)

Нет

IP пытавшегося войти в админку

success

int(1)

Нет

Успешный или нет был вход(1 или 0)

  1.  Структура директорий

  1.  /template – (шаблон) директория содержащая файлы шаблонов страниц. Содержит поддиректории в каждой из которой находятся файлы шаблонов.
  2.  CMS Автоматически создает директорию /userfile (файлы), в которой находятся публикуемые на сайте изображения.
  3.  /userfile также содержит стандартные графические элементы дизайна.
  4.  /adminДиректория с файлами администрирования контента.
  5.  /ckeditorдиректория текстового on-line редактора FCKeditor.

  1.  Принцип работы системы

При обращении к «центральному» файлу index.php, в корневой директории, строкой: «include('config.php');» подключается «конфигурационный» файл config.php. Его задачу составляет подключение классов и функций, а так же подключение обходимого шаблона. Помимо этого, файл config.php определяет параметры подключения к базе данных:

  1. Определяет имя сервера базы данных.
  2. Определяет имя базы данных.
  3. Определяет логин и пароль пользователя базы данных.
  4. Определяет кодировку подключения к базе данных.

  1.  Функции конфигурационного файла и их использование

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

Рассмотрим базовые функции, благодаря которым происходит генерация страниц. Прежде всего, необходимо произвести подключение к базе данных. Происходит это благодаря стандартной функции : mysql_connect($hostname, $username, $password);

После успешного подключения, начинается генерация страница, благодаря следующим функциям:

  1.  get_menu()– получает главное меню для сайта (пользовательский раздел).
  2.  page_data_content($title_url) – получает страницу по её URL.

В зависимости от того, какой GET параметр передан в ссылке, происходит запрос к базе данных с ним. Примером может выступить посещение страницы:

http://cms7.ru/index.php?view=contacts

Будет выполнен запрос для вывода данных страницы с “title_url” равным “contacts”.

  1.  page_data_content_id($id)– получает страницу по её ID.

В зависимости от того, какой GET параметр передан в ссылке, происходит запрос к базе данных с ним. Примером может выступить посещение страницы:

http://cms7.ru/admin/content-page.php?comand=edit&t=page&id=1

Будет выполнен запрос для вывода данных страницы с “id” равным “1”.

  1.  news_data_content($title_url)– получает новость по её URL.

Работает по аналогии с “page_data_content($title_url)”, только выбирает из базы данных новости.

  1.  news_data($id)– получает новость по её ID.

Работает по аналогии с “page_data_content_id($id)”, только выбирает из базы данных новости.

  1.  insert_data()– добавление данных в базу данных.

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

http://cms7.ru/admin/content-news.php?comand=new

  1.  update_data()– обновление данных в базе данных.

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

http://cms7.ru/admin/content-news.php?comand=edit&t=news&id=40

  1.  file_info()– получает информацию о всех файлах из базы данных.

Применяется для получения в раздел “Управление файлами” таблицы значений уже существующих записей в базе данных. Примером может выступить управление существующими файлами сайта: http://cms7.ru/admin/content-files.php

  1.  get_page_admin()– получает информацию о страницах из базы данных.

Применяется для получения в раздел “Управление страницами сайта” таблицы значений уже существующих записей в базе данных. Примером может выступить таблица управления существующими страницами сайта: http://cms7.ru/admin/content-page.php

  1.  get_news_admin()– получает информацию о новостях из базы данных.

Применяется для получения в раздел “Управление новостями сайта” таблицы значений уже существующих записей в базе данных. Примером может выступить таблица управления существующими новостями сайта: http://cms7.ru/admin/content-page.php

Как уже было сказано выше, в конфигурационном файле подключен  «шаблонизатор»:

include($_SERVER['DOCUMENT_ROOT'].'/template/test/style.php');

Это PHP скрипт с подключенными CSS стилями. Производит парсинг контента и вставляет его в заданный шаблон, иначе говоря, формирует тело HTML – документа. Сам шаблон представляет собой небольшие куски HTML – разметки, с синтаксическими конструкциями, которые понимает шаблонизатор. Данный метод позволяет изменять дизайн страниц, при меньших затратах времени, в отличие от метода «ручной верстки страниц».

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

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

Существует несколько разных подходов для создания шаблонов с помощью языка РНР:

  1. внедрение HTML в код РНР;
  2. включение файлов в страницу.

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

Вторая схема во многих ситуациях оказывается гораздо удобнее первой. Тем не менее, хотя структура «заголовок – основная часть – колонтитул» хорошо подходит для структурирования относительно малых сайтов с четко определенным форматом, с увеличением объемов и сложности проекта эти ограничения проявляются все заметнее. Попытки решения этих проблем привели к разработке новой схемы применения шаблонов, более сложной по сравнению с двумя первыми, но и обладающей существенно большей гибкостью. В этой схеме разделяются два главных компонента web-приложения: дизайн и программирование. Подобное деление обеспечивает возможность параллельной разработки (web-дизайн и программирование) без необходимости постоянной координации на протяжении всего рабочего цикла. Более того, оно позволяет в будущем модифицировать один компонент, не влияя на работу другого.

В листинге 1 представлен некий базовый шаблон, созданный на основе этой технологии.

Листинг 1

Шаблон блока «news»

<?

// Отрывок кода из файла config.php

if(empty($_GET['news'])) $news = 'URL';

   else $news = $_GET['news'];

   $news_id= news_data($news);

function news_data($id)

   {

       $query = sprintf(" SELECT * FROM news WHERE news.id = '%s' ",

                                           mysql_real_escape_string($id));

       $result = mysql_query($query); 

       $row = mysql_fetch_array($result);

       return $row;                

   }

?>

// Отрывок кода из файла style.php

<table width="100%">

     <tr>

       <td ><div><? echo $news_id['date'];?></div>

         <br>

         <strong><? echo $news_id['title'];?></strong><br>

         <br>

         <? echo $news_id['content'];?>

         <br>

         <br></td>

     </tr>

 </table>

Cтроки (echo $news_id['date'], echo $news_id['title'], echo $news_id['content']), интерпретируются как соответствующие имена переменных, а функцияechoвыводит их на экран. Дизайнер строит страницу по своему усмотрению; все, что от него потребуется, – включать в соответствующие места документа эти ключевые строки. Конечно, программисты и дизайнеры должны заранее согласовать имена всех переменных!

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

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

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

  1.  Расчет экономических показателей программного продукта

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

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

Процесс разработки программного продукта состоит из нескольких этапов:

  1. проектирование;
  2. написание программы;
  3. отладка и тестирование.

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

Второй этап представляет собой реализацию разработанной программы на языке программирования.

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

На основе экспертных оценок затрат времени определяется средняя величина для каждого из выше указанных этапов, по формуле (7.1):

,

(7.1)

где – средняя оценка;

– оценка, данная руководителем проекта;

– оценка, данная разработчиком проекта.

Экспертные оценки времени рассчитываются по каждому этапу разработки программного продукта для трех ситуаций:

  1. наименее возможная величина затрат (ai);
  2. наиболее вероятная величина затрат (mi);
  3. наиболее возможная величина затрат (bi);

Результаты расчета средней оценки затрат времени на разработку программного продукта приведены в таблице 7.1.

Таблица 7.1

Оценка затрат времени на разработку программного продукта

Этапы разработки программного продукта

Величина затрат

Наименее возможная ai, дни

Наиболее вероятная mi, дни

Наиболее возможная bi, дни

tрук

tразр

tсред

tрук

tразр

tсред

tрук

tразр

tсред

Проектирование

8

12

10

11

16

13,5

14

21

17,5

Написание программы

14

31

22,5

18

38

28

28

42

35

Тестирование и отладка

4

6

5

8

9

8,5

8

10

9

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

Формула (7.2) для расчета математического ожидания:

,

(7.2)

где – математическое ожидание для i-гo этапа;

, , – средние значения затрат.

Стандартное отклонение для каждого этапа разработки программного продукта определяется по формуле (7.3):

,

(7.3)

где – стандартное отклонение по i-му этапу.

Общая оценка затрат на разработку программного продукта рассчитывается по формуле (7.4):

,

(7.4)

где – общая оценка затрат;

– математическое ожидание затрат для i-го этапа;

– количество этапов разработки программного продукта.

Стандартное отклонение в целом по программному продукту вычисляется по формуле (7.5):

,

(7.5)

где – стандартное отклонение общей оценки затрат;

– стандартное отклонение оценки затрат для i-го этапа.

На основе расчетов математического ожидания и стандартного отклонения вычисляется коэффициент вариации. Данный коэффициент показывает, насколько согласованы эксперты. Ниже приведены формула (7.6) для расчета коэффициента вариации по i-тому этапу и формула (7.7) для вычисления общего коэффициента вариации:

,

(7.6)

где – коэффициент вариации для i-го этапа;

– стандартное отклонение оценки затрат для i-го этапа;

– математическое ожидание затрат для i-го этапа.

,

(7.7)

где – коэффициент вариации по всем этапам;

– стандартное отклонение оценки затрат по всем этапам;

– математическое ожидание затрат по всем этапам.

Если общий коэффициент вариации , то мнения экспертов считаются согласованными.

Результаты расчета , , , а также , , приведены в таблице 7.2.

Таблица 7.2

Затраты времени на разработку программного продукта

Этапы разработки программного продукта

Средняя величина затрат времени по этапам

Математичес-кое ожидание

МОi, дни

Стандартное отклонение

Gi, дни

Коэффициент вариации

Yi, дни

Наименее возможная ai, дни

Наиболее вероятная mi, дни

Наиболее возможная bi, дни

Проектирование

10

13

17,5

13,25

1,25

0,094

Написание программы

22,5

28

35

28,25

2,08

0,074

Тестирование и отладка

5

8,5

9

8

0,67

0,083

Итого

37,5

49,5

61,5

49,5

4

0,25

Так как коэффициент вариации по программному продукту равен 0,25 и не превосходит 0,33, то мнения экспертов согласованы.

Расчет себестоимости программного продукта производится по формуле (7.8):

,

(7.8)

где – себестоимость комплекса программных продуктов;

– среднемесячная заработная плата программиста с учетом районного коэффициента;

– количество рабочих дней в месяце;

– трудозатраты на проектирование;

– трудозатраты на написание программы;

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

– коэффициент, отражающий страховые взносы (согласно 24 главе НК РФ он составляет 34 % от заработной платы);

– коэффициент учитывающий накладные расходы;

– стоимость одного часа машинного времени;

– стоимость одного часа работы в Интернете;

– количество дней работы на компьютере;

– количество дней работы в Интернете.

Значения данных для подсчета себестоимости программного продукта представлены в таблице 7.3.

Таблица 7.3

Значения данных для подсчета себестоимости

Показатель

Значение

, руб.

15000

, руб.

22

, дни

13,25

, дни

28.25

, дни.

8

, %

26

, %

50

, руб.

0,6

, дни

50

, дни

40

Рассчитаем стоимость одного часа машинного времени. Для этого рассчитаем затраты на эксплуатацию персонального компьютера за год по формуле (7.9):

,

(7.9)

где – себестоимость одного часа машинного времени;

– затраты на электроэнергию за год работы;

– затраты на амортизационные отчисления;

– затраты на комплектующие материалы;

– прочие затраты;

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

Приведем формулы для расчета вышеперечисленных видов затрат.

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

Затраты на комплектующие материалы за год примем руб.

Затраты на электроэнергию зависят от тарифа на электроэнергию и потребляемой мощности персонального компьютера, а также от времени работы персонального компьютера.  

Формула (7.10) для расчета затрат на электроэнергию приведена ниже:

,

(7.10)

где – затраты на электроэнергию за год работы;

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

– тариф электроэнергии за 1 кВт;

– потребляемая мощность персонального компьютера по паспортным данным.

Примем потребляемую мощность персонального компьютера и тариф электроэнергии соответственно:

кВт/час;

руб/кВт.

По формуле (9.10) находим затраты на электроэнергию в год:

руб.;

Амортизационные отчисления в год рассчитываются по формуле (7.11):

,

(7.11)

где – затраты на амортизационные отчисления;

– стоимость персонального компьютера ( руб.);

– процент отчисления на амортизацию.

Процент отчисления на амортизацию рассчитывается согласно методике, отраженной в статье 259.1 НК РФ. Согласно постановлению правительства РФ от 1 января 2002 под № 1 «О классификации основных средств, включаемых в амортизационные группы», срок использования основных средств составляет от 2 до 3 лет. В рамках дипломного проекта установим срок полезного использования 2 года.

Определим процент отчисления на амортизацию:

.

Произведем расчет амортизационных отчислений по формуле (7.11):

руб./год.

Прочие расходы составляют 5 % от общей суммы затрат. Они рассчитываются по формуле (7.12):

.

(7.12)

По формуле (7.12) находим:

руб./год.

 

Зная все данные, подсчитаем стоимость одного часа машинного времени по формуле (7.9):

руб.

Рассчитаем себестоимость программного продукта по формуле (7.8):

руб.

Цена программного продукта рассчитывается по формуле (7.13):

,

(7.13)

Где – цена программного продукта;

– себестоимость программного продукта;

– рентабельность программного продукта.

Рентабельность программного продукта примем:

По формуле (7.13) находим:

руб.

Цена программного продукта с учетом НДС рассчитывается по формуле (7.14):

,

(7.14)

где – цена программного продукта с НДС;

– цена программного продукта;

– составляет 18% от цены программного продукта согласно статье 164 из 21 главы НК РФ.

По формуле (7.14) вычисляется цена программного продукта с учетом НДС:

руб.

Итого стоимость данного программного продукта на рынке будет 155269,36 руб.

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

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

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

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

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

 

  1.  Вопросы техники безопасности

8.1 Требования к системе управления охраной труда

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

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

8.1.1 Политика организации в области охраны труда

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

Политика организации в области охраны труда должна:

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

8.1.2 Идентификация опасностей, оценка риска и управление им

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

8.1.3 Планирование условий охраны труда

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

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

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

Руководство, должно определять и документально оформлять программу улучшения условий охраны труда, уделяя внимание следующим действиям:

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

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

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

8.1.4 Подготовленность к аварийным ситуациям

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

8.1.5 Управление технологическими процессами

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

8.1.6 Документация системы управления охраной труда

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

  1.  Микроклимат в производственных помещениях и его нормирование

8.2.1 Термины и определения

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

Нормирование микроклимата в рабочих помещениях осуществляется в соответствии с санитарными правилами и нормами, изложенными в “СанПин 2.2.4.548-96. Гигиенические требования к микроклимату производственных помещений”.

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

Рабочее место – место, на котором нормируется микроклимат или участок помещения (или всё помещение), на котором в течение рабочей смены или её части осуществляется трудовая деятельность.

Рабочая зона – ограничивается высотой 2 метра над уровнем пола или площади, где находятся рабочие места.

Холодный период года – период года, характеризуемый среднесуточной температурой наружного воздуха +10ºС и ниже.

Тёплый период года – период года, характеризуемый среднесуточной температурой наружного воздуха выше +10ºС.

Показатели микроклимата:

  1. температура воздуха, ºС;
  2. температура поверхностей ограждающих конструкции (стены, потолок, пол) и поверхностей технологического оборудования, ºС;
  3. относительная влажность воздуха, %;
  4. скорость движения воздуха, м/с;
  5. интенсивность теплового облучения, Вт/м².

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

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

При работе, выполняемой сидя, температуру и скорость движения воздуха измеряют на высоте 0,1 и 1,0 м., а относительную влажность воздуха – на высоте 1,5 м.

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

Скорость движения воздуха измеряют анемометрами вращательного действия (крыльчатые, чашечные). Скорости движения воздуха до 0,5 м/с можно измерять кататермометрами.

Интенсивность теплового облучения измеряют актинометрами, радиометрами и др.

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

8.2.2 Оптимальные и допустимые условия микроклимата

Влажность воздуха оказывает большое влияние на терморегуляцию организма. Повышенная влажность (более 85%) затрудняет терморегуляцию, а низкая (ниже 20%) вызывает пересыхание слизистых оболочек. Движение воздуха в помещениях является важным фактором, влияющий на самочувствие человека. В жарком помещении движение воздуха способствует увеличению отдачи теплоты организмом и улучшает его состояние, но оказывает неблагоприятное воздействие при низкой температуре воздуха. Скорость движения воздуха оказывает влияние на распределении вредных веществ в помещении. Воздушные потоки могут распространять их по всему помещению, переводить пыль из осевшего состояния во взвешенное состояние. Оптимальные микроклиматические условия обеспечивают ощущение теплового комфорта в течение рабочей смены, не вызывают отклонений в состоянии здоровья, поддерживают высокий уровень работоспособности. Оптимальные параметры микроклимата рекомендуется соблюдать на рабочих местах, где выполняется работа операторского типа, связанная с нервно-эмоциональным напряжением. Допустимые микроклиматические условия не должны вызывать нарушений состояния здоровья, но могут приводить к возникновению ощущений теплового дискомфорта, напряжению механизмов терморегуляции, ухудшению самочувствия и понижению работоспособности.

При определении характеристики отдельных видов работ на основе интенсивности энергозатрат организма можно использовать килокалории (ккал), при этом соразмерность с ваттами следующая: 1 Вт = 1,16 ккал.

  1.  Оказание первой медицинской помощи при поражении электротоком

Действие тока: – термическое (ожоги кожи, нагрев крови); – электролитическое (разложение крови); – биологическая (судорожное сокращение мышц).

Различают три вида поражения:

1. Электротравма – местное повреждение ткани.

Ожог 1-й и 2-й степеней двух видов: токовый (покраснение кожи, образование пузырей); дуговая (омертвление кожи, обугливание тканей).

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

Тяжесть обуславливается площадью обожженной поверхности.

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

3. Электрошок – тяжелая нервная реакция организма, сопровождающаяся расстройством дыхания, обмена веществ.

Факторы, определяющие исход поражения.

1. Величина тока и напряжения.

0,8-1,2 мА – пороговый ощутимый ток. 10-16 мА – пороговый не отпускающий ток. 100 мА – пороговый ток фибрилляции значения для переменного тока.

2. Продолжительность воздействия.

ГОСТ 12.1.038-82 – Пред. допустим. уровни напряжен.и токов: 0,1 с – 500 мА; 0,2 с – 250 мА; 0,4 с – 125 мА; 1 с – 50 мА.

3. Сопротивление тела.

1-сопр.кожи; 0,15-0,2-крови; 0,025-нервов; 1000Ом-тела.

Сопротивление падает с увеличением напряжения (пробой), с увеличением продолжительности воздействия и увеличением частоты.

4. Петля (путь) тока. Из зоны растекания следует выходить гусиным шагом.

5. Род и частота тока. Постоянный ток в 4-5 раз безопаснее переменного (300 Вт), далее наоборот. Наиболее опасная частота – 70 Гц (возникает резонанс биополей с внешними электромагнитными полями).

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

Основной причиной несчастных случаев, обусловленных действием электрического тока, являются нарушения правил техники безопасности при работе с бытовыми электроприборами и промышленными электроустановками. Большая часть поражений вызывается переменным током промышленной частоты (50 Гц). Электротравма возникает не только при непосредственном соприкосновении тела человека с источником тока, но и при дуговом контакте, когда человек находится вблизи от установки с напряжением более 1000 В., особенно в помещениях с высокой влажностью воздуха. Электрический ток вызывает местные и общие нарушения в организме. Местные изменения проявляются ожогами тканей в местах выхода и входа электрического тока. В зависимое от состояния пораженного (влажная кожа, утомление, истощение и др.), силы и напряжения тока возможны различные местные проявления – от потери чувствительности до глубоких ожогов. Возникающее при этом на коже поврежден (рис. 1) напоминает таковое при термическом ожоге III- степени. Образовавшаяся рана имеет кратерообразную форму с омозолелыми краями серо-желтого цвета, иногда рана проникает до кости. При воздействии тока высокого напряжения возможны расслоение тканей, их разрыв, иногда полный отрыв конечности. При воздействии переменного тока силой 1,5 мА у пострадавшего возникают судороги (так называемый неотпускающий ток). В случае поражения током силой-50 мА наступает остановка дыхания. Из-за спазма голосовых связок пострадавший не может крикнуть и позвать на помощь. Если действие тока не прекращается, через несколько минут происходит остановка сердца в результате гипоксии и наступает смерть пострадавшего. Состояние пораженного в момент электротравмы может быть настолько тяжелым, что он внешне мало, чем отличается от умершего: бледная кожа, широкие, не реагирующие на свет зрачки, отсутствие дыхания и пульса – “мнимая смерть”. Лишь тщательное выслушивание тонов сердца позволяет установить признаки жизни. При более легких поражениях общие явления могут проявляться в виде обмороков, тяжелого нервного потрясения, головокружения, общей слабости. Местные повреждения при поражении молнией аналогичны повреждениям, наступающим при воздействии промышленного электричества. На коже часто появляются пятна темно-синего цвета, напоминающие разветвления дерева, что обусловлено расширением сосудов. При поражении молнией общие явления выражены значительнее. Характерно развитие параличей, глухота, немота и остановка дыхания.

Первая помощь. Одним из главных моментов при оказании первой помощи является немедленное прекращение действия электрического тока. Это достигается выключением тока (поворотом рубильника, выключателя, пробки, обрывом проводов), отведением электрических проводов от пострадавшего (сухой веревкой, палкой), заземлением или шунтированием проводов (соединить между собой два токоведущих провода). Прикосновение к пострадавшему незащищенными руками при не отключенном электрическом токе опасно. Отделив пострадавшего от проводов, необходимо тщательно осмотреть его. Местные повреждения следует обработать и закрыть повязкой, как при ожогах. При повреждениях, сопровождающихся легкими общими явлениями (обморок, кратковременная потеря сознания, головокружение, головная боль, боли в области сердца), первая помощь заключается в создании покоя и доставке больного в лечебное учреждение. Необходимо помнить, что общее состояние пострадавшего может резко и внезапно ухудшиться в ближайшие часы после травмы: возникают нарушения кровоснабжения мышцы сердца (стенокардия и инфаркт миокарда), явления вторичного шока и т. д.. Подобные состояния иногда наблюдаются даже у пораженного с самыми легкими общими проявлениями (головная боль, общая слабость); поэтому все лица, получившие электротравму, подлежат госпитализации. В качестве первой помощи могут быть даны успокаивающие (микстура Бехтерева, настойка валерианы), сердечные средства (капли Зеленина и др.). При тяжелых общих явлениях, сопровождающихся расстройством или остановкой дыхания, развитием состояния “мнимой смерти”, единственно действенной мерой первой помощи является немедленное проведение искусственного дыхания, иногда в течение нескольких часов подряд. При работающем сердце искусственное дыхание быстро улучшает состояние больного, кожный покров приобретает естественную окраску, появляется пульс, начинает определяться артериальное давление. Наиболее эффективно искусственное дыхание рот в рот (1б-20 вдохов в минуту). Его удобнее проводить при помощи трубки или специального воздуховода. По возможности искусственное дыхание нужно сочетать с введением сердечных средств. После того как к пострадавшему вернется сознание, его необходимо напоить (вода, чай, компот, но не алкогольные напитки и кофе), тепло укрыть. В случаях, когда неосторожный контакт с электропроводом произошел в труднодоступном месте – на вышке электропередачи, на столбе – необходимо начать оказание помощи с искусственного дыхания, а при остановке сердца – нанести 1-2 удара по грудине в область сердца и принять меры для скорейшего опускания пострадавшего на землю, где можно проводить эффективную реанимацию. Первая помощь при остановке сердца должна быть начата как можно раньше, т. е. в первые 5 мин., когда еще продолжают жить клетки головного и спинного мозга. Помощь заключается в одновременном проведении искусственного дыхания и наружного массажа сердца с частотой 50-70 в мин. Об эффективности массажа судят по появлению пульса на сонных артериях. При сочетании искусственного дыхания и массажа на каждое вдувание воздуха в легкие необходимо делать 4-5 надавливаний на область сердца, в основном в период выдоха. Массаж сердца и искусственное дыхание рекомендуется продолжать до полного восстановления их функций или появления явных признаков смерти. По возможности массаж сердца следует сочетать с введением сердечных средств. Пострадавшего транспортируют в положении лежа. Во время транспортировки следует обеспечить внимательное наблюдение за таким больным, т. к., в любое время у него может произойти остановка дыхания или сердечной деятельности, и надо быть готовым в пути оказать быструю и эффективную помощь. При транспортировке в лечебное учреждение пострадавших, находящихся в бессознательном состоянии или с не полностью восстановленным самостоятельным дыханием, прекращать искусственное дыхание нельзя.

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

В тяжелых случаях пострадавший теряет сознание, отмечаются двигательное беспокойство, судороги. Могут появиться слуховые галлюцинации, бред, параличи и парезы конечностей, поражение черепных нервов (зрительного, глазодвигательного, слухового). На коже обнаруживаются своеобразные фигуры–молнии в форме древовидных полос красно–бурого цвета и ожоги различной степени. Иногда отмечается поражение внутренних органов. Всех пострадавших от поражения молнией необходимо госпитализировать. Категорически запрещается так называемое “заземление”, закапывание пострадавших в землю. Необходимо срочно вызвать “скорую помощь”, а при остановке дыхания и сердечной деятельности незамедлительно приступить к искусственному дыханию методом “рот в рот” или “рот в нос” и наружному массажу сердца. Пострадавшие, у которых после удара молнией не наступила остановка сердца, имеют хорошие шансы на выживание.

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

  1.  Код программы

<?

//Данные подключения к БД MySQL

$hostname = 'localhost';

$username = 'plus500';

$password = '147852';

   

// Подключаемся к серверу MySQL

 $db = mysql_connect($hostname, $username, $password) or die('Не удалось подключится к серверу БД!'); 

 

// Устанавливаем нужную кодировку общения с сервером

mysql_query ("set_client='utf8'");

mysql_query ("set character_set_results='utf8'");

mysql_query ("set collation_connection='utf8_general_ci'");

mysql_query ("SET NAMES utf8");

   

// Выбираем нужную БД

mysql_select_db('plus500') or die('БД не найдена!'); 

   

   /*          Функции файла config.php,   используемые для генерации страниц сайта: */

   /*          Функции файла config.php,   используемые для генерации страниц сайта: */

//Получаем меню для сайта

function get_menu()

{

$query = "SELECT * FROM page WHERE menu = 1"; //Запрос на вывод всех значений меню из базы

$result = mysql_query($query); 

$result = db_result_to_array($result); //Обрабатываем запрос, для приведения его в вид массива

return $result;  

}

//Функция построчной выборки результатов из базы

function db_result_to_array($result)

{

$res_array = array();

$count = 0; 

while($row = mysql_fetch_array($result)) //Запускаем цикл пока не кончатся результаты из таблицы

{

$res_array[$count] = $row;

$count++;

}

return $res_array; 

}

 

//Получаем информацию о странице

function page_data($title)

{

$query = sprintf(" SELECT * FROM page WHERE page.title_url = '%s' ",

mysql_real_escape_string($title));

$result = mysql_query($query); 

$row = mysql_fetch_array($result);

return $row;                

}

   

   

   //Функция получени динамические значения из базы

    function get_data_admin($table,$id)

   {

       $query = sprintf(" SELECT * FROM $table WHERE $table.id = '%s' ",

                        mysql_real_escape_string($id));

       $result = mysql_query($query); 

       $row = mysql_fetch_array($result);

       return $row;

   }

   

   

   // Функция для получения страниц сайта в админке(в список)

   function get_page_admin()

   {

       $query = "SELECT * FROM page";

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;

   }

   

   

    //Функция обновления динамических данных

    function update_data($table, $id, $row, $data)

    {

       $i = 0;

       foreach($data as $item=>$key):

           mysql_query(" UPDATE $table SET $row[$i] = '$key' WHERE id = '$id' ");

           $i++;

       endforeach;  

   }

   

   //Функция получения динамических данных о странице на основе URL

   function page_data_content($title)

   {

       $query = sprintf(" SELECT * FROM page WHERE page.title_url = '%s' ",

                        mysql_real_escape_string($title)); 

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;             

   }

   

   

     //Функция получения динамических данных о странице на основе ID

   function page_data_content_id($id)

   {

       $query = sprintf(" SELECT * FROM page WHERE page.id = '%s' ",

                        mysql_real_escape_string($id)); 

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;             

   }

   

    //Функция удаления динамических данных  по ID

    function delete_data($table, $id)  { mysql_query(" DELETE FROM $table WHERE id='$id' "); }

       

   //Функция ДОБАВЛЕНИЯ динамических данных     

   function insert_data($table, $row, $data)

   {

       $row = implode(',',$row);

       $data = implode(',',$data);      

       mysql_query("INSERT INTO $table ($row) VALUES($data) ");

   }   

   

   //Функция получения динамических данных о ФАЙЛЕ

   function file_info($title)

   {

       $query = sprintf(" SELECT * FROM files WHERE files.userfile = '%s' ",

                        mysql_real_escape_string($title)); 

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;         

   }

   

   // Функция для получения НОВОСТЕЙ сайта в админке(в список)

   function get_news_admin()

   {

       $query = "SELECT * FROM news";

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;

   }

   

   //Функция получения динамических данных о новости

   function news_data_content($title)

   {

       $query = sprintf(" SELECT * FROM news WHERE news.title_url = '%s' ",

                        mysql_real_escape_string($title)); 

       $result = mysql_query($query);

       $result = db_result_to_array($result);

       return $result;             

   }

   

   //Получаем информацию о НОВОСТИ

   function news_data($id)

   {

       $query = sprintf(" SELECT * FROM news WHERE news.id = '%s' ",

                                           mysql_real_escape_string($id));

       $result = mysql_query($query); 

       $row = mysql_fetch_array($result);

       return $row;                

   }

   

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

session_start(); //Открываем сессию для чтения

 if (isset($_SESSION['user_id'])) {}    //Проверка не пуста ли сессия

//Если пуста, отображаем страницу авторизации с сообщением, для устрашения :)

else { header("Location: index.php?error=1"); }

?>  

   <ul id="nav">

       <li>

           <a href="#">Наполнение сайта</a> 

               <div>

                   <ul>

                       <li><a href="content-page.php">Страницы сайта</a></li>

                       <li><a href="content-news.php">Новости</a></li>

                       <li><a href="content-files.php">Файловый архив</a></li>

                   </ul>

               </div>

       </li>

   

       <li>

            <a href="#">Настройки сайта</a>

                <div>

                      <ul>

                           <li><a href="main-config-site.php">Oсновные</a></li>

                      </ul>

                </div>

       </li>

   

       <li>

            <a href="#">Зона администратора</a>

                <div>

                   <ul>

                        <li><a href="admin-user.php">Управление администраторами</a></li>

                        <li><a href="admin-last-ip.php">Последние входы</a></li>

                        <li><a href="admin-private-ip.php">Ограничение доступа</a></li>

                   </ul>

                </div>

       </li>

       

       <li>

            <a href="faq.php">Помощь</a>

        </li>

   </ul>

<?

//Авторизация в административном разделе:

 

   if ($_GET['exit']==1)

   {

   session_start();

   session_unset(); // Удаляем  все переменные сессии

   session_destroy(); // Удаляем сессиию

   }

   session_start();

   if (isset($_SESSION['user_id'])) 

   {header("Location: index.php");}

   if (isset($_POST['login']) && isset($_POST['password']))

   {

   $login = mysql_real_escape_string($_POST['login']); // Экранизация спецсимволов

   $password = md5($_POST['password']); 

// делаем запрос к БД и ищем админа с таким логином и паролем

$query = "SELECT *  FROM `admin` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1";

$sql = mysql_query($query) or die(mysql_error());  

// если такой пользователь нашелся

// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

       if (mysql_num_rows($sql) == 1) 

       {  

       session_start();

       $row = mysql_fetch_assoc($sql);

       $_SESSION['user_id'] = $row['id'];

       $_SESSION['user_login'] = $row['login'];

       $_SESSION['user_name'] = $row['name'];

       $_SESSION['user_privelege'] = $row['privelege'];

       $_SESSION['user_email'] = $row['email'];

       

//Пишел логи удачного входа

       $query = "INSERT INTO `log` (`login`, `date`, `ip`, `success`) VALUES ('$login', '$date', '$ip', 1)";

       $sql = mysql_query($query) or die(mysql_error()); 

       

       header("Location: content-page.php");         // Редиректим в админку

       }

//если такой пользователь не нашелся, то выводим сообщение об ошибке в авторизации

        else 

        {

         $query = "INSERT INTO `log` (`login`, `date`, `ip`, `success`) VALUES ('$login', '$date', '$ip', 0)";

            $sql = mysql_query($query) or die(mysql_error()); //Пишел логи неудачного входа

           die('Логин или пароль не верны. ');

         }

         } 

   

    if ($_GET['error']==1)

    {echo "Для получения доступа к этой странице необходимо авторизоваться!";}

//Вывод имени, IP, последней даты входа в административном разделе:

include("../config.php"); 

session_start();

$login= $_SESSION['user_login'];

$query = "SELECT * FROM `log` WHERE `login`='{$login}' AND `success`='1' order by `date` desc limit 1,2";

$sql = mysql_query($query) or die(mysql_error());

    $sql_as = mysql_fetch_assoc($sql);

    $lastdate= $sql_as['date'];

    $lastip= $sql_as['ip'];

//Управление страницами сайта в административном разделе:

    if ($_GET['comand']=='new' & empty($_GET['save'])) 

{ 

?>

<form action="content-page.php?comand=new&save=1&t=page" method="post" enctype="multipart/form-data" id="add-edit" >

<label>Имя страницы   </label><br /><textarea name="title" cols="100" rows="1"/></textarea>

<br /><br /><br />

<label>URL-страницы </label><textarea name="title_url" cols="100" rows="1">

</textarea><br /><br /><br />

    <label>Контент   </label><br /><textarea name="content" cols="55" rows="11">

</textarea><br /><br /><br />

<label>В главном меню   </label><br /><select name="menu">

<option value="1">Отображать</option><option value="2">Не отображать</option>

</select><br /><br />

    <label>Ключевые слова   </label><br /><textarea name="keywords" cols="44" rows="5">

</textarea><br /><br /><br />

    <label>META- теги   </label><br /><textarea name="description" cols="44" rows="5">

</textarea><br /><br /><br />

    <input type="submit" class="button" value="Сохранить"   />

   </form>

   

<?   }

   if ($_GET['comand']=='delete') 

   {

   $id = $_GET['id'];

   $table =  $_GET['t'];

   $delete_data = delete_data($table, $id);

   echo "Cтраница успешно удалена!";

   }

   

   if ($_GET['comand']=='edit' & empty($_GET['save'])) 

   {  

   $id = $_GET['id'];

   $table =  $_GET['t'];

   $page_data = get_data_admin($table, $id);

?>

 <form action="content-page.php?comand=edit&save=1&t=page&id=<?=$page_data['id'];?>" method="post" enctype="multipart/form-data" id="add-edit" >

    <label>Имя страницы   </label><br /><textarea name="title" cols="100" rows="1"/>

<?=$page_data['title'];?></textarea><br /><br /><br />

    <label>URL-страницы   </label><br /><textarea name="title_url" cols="100" rows="1">

<?=$page_data['title_url'];?></textarea><br /><br /><br />

    <label>Контент   </label><br /><textarea name="content" cols="55" rows="11">

<?=$page_data['content'];?></textarea><br /><br /><br />

  <label>Отображение в главном меню   </label><br />В данный момент запись

   

 <?

    if($page_data['menu']==1){echo "отображается в главном меню.";} 

        else {echo "не отображается в главном меню.";};

?>

   <br />Действие: <select name="menu"> <option value="1">Отображать</option> <option value="0">Не отображать</option></select><br /><br />

<label>Ключевые слова   </label><br /><textarea name="keywords" cols="44" rows="5">

<?=$page_data['keywords'];?></textarea><br /><br /><br /><label>META- теги   </label><br />

<textarea name="description" cols="44" rows="5"><?=$page_data['description'];?></textarea> 

<input type="submit" name="add" class="button" value="Сохранить"   />

   </form>

   

<?  }   

   if ($_GET['comand']=='new' & $_GET['save']==1)  

   { 

   $count = 0;

   $table = $_GET['t'];

   

       foreach($_POST as $ArrKey => $ArrStr)

       {

       $row[$count] = $ArrKey;

       $data[$count] = "'".$_POST[$ArrKey]."'";

       $count++;

       }

       

   unset($row[$count]);

   unset($data[$count]);

   insert_data($table, $row, $data);

   echo "Новая страница успешно добавлена!";                          

   }

       if ($_GET['comand']=='edit' & $_GET['save']==1) 

       {

       $count = 0;

       $table = $_GET['t'];

       $id = $_GET['id'];

       

           foreach($_POST as $ArrKey => $ArrStr)

           {

           $row[$count] = $ArrKey;

           $data[$count] = $_POST[$ArrKey];

           $count++;

           }

           

       update_data($table, $id, $row, $data);

       echo "Страница успешно отредактирована!";

       }

       

       if (empty($_GET['comand']) & empty($_GET['id']) & empty($_GET['t'])) 

       {

       $data = get_page_admin();

?>      

       

       <td><input type="submit" style="cursor:pointer;" onclick="location.href='content-page.php?comand=new'"  class="login-buttons" value="Добавить новую страницу." /></td><br><br>

     

 <table width="100%" border="0" cellspacing="0" cellpadding="0">    

<tr>

             <td class="table_headlines">ID</td>

            <td class="table_headlines">Название</td>

             <td class="table_headlines">Ссылка</td>

             <td class="table_headlines2" width="60">Действие</td>

</tr>

       

<?              

       foreach($data as $item):

?>

<tr>

<td class="articles_type"><?=$item['id'];?></td>

<td class="articles_topic"><a href="#"><?=$item['title'];?></a></td>  

<td class="articles_comment">

<a href="../index.php?view=<?=$item['title_url'];?>" target="_blank">Cсылка</a></td>

<td class="articles_actions">

<a href="content-page.php?comand=edit&t=page&id=<?=$item['id'];?>">

<img src="files/edit.png" alt=""/></a> 

<a href="content-page.php?comand=delete&t=page&id=<?=$item['id'];?>" >

<img src="files/delete.png" alt=""/></a></td>

</tr>

<? 

       endforeach;

       }

?>

       </table>

<?

   //Управление новостями в административном разделе:

   if ($_GET['comand']=='new' & empty($_GET['save'])) 

   { 

?>

<form action="content-news.php?comand=new&save=1&t=news" method="post" enctype="multipart/form-data" id="add-edit" >

<label>Имя новости   </label><br /><textarea name="title" cols="100" rows="1"/>

</textarea><br /><br /><br />

<label>URL-новости   </label><br /><textarea name="title_url" cols="100" rows="1">

</textarea><br /><br /><br />

<label>Контент   </label><br /><textarea name="content" cols="55" rows="11">

</textarea><br /><br /><br />

<label>Ключевые слова   </label><br /><textarea name="keywords" cols="44" rows="5">

</textarea><br /><br /><br />

 

<label>META- теги   </label><br /><textarea name="description" cols="44" rows="5">

</textarea><br /><br /><br />

 

       <input type="submit" class="button" value="Сохранить"   />

</form>

   

<?  

   }

   if ($_GET['comand']=='delete') 

   {

   $id = $_GET['id'];

   $table =  $_GET['t'];

   $delete_data = delete_data($table, $id);

   echo "Cтраница успешно удалена!";

   }

   if ($_GET['comand']=='edit' & empty($_GET['save'])) 

   { 

   $id = $_GET['id'];

   $table =  $_GET['t'];

   $news_data = get_data_admin($table, $id);

?>

<form action="content-news.php?comand=edit&save=1&t=news&id=<?=$news_data['id'];?>" method="post" enctype="multipart/form-data" id="add-edit" >

        <label>Имя страницы   </label><br />

<textarea name="title" cols="100" rows="1"/><?=$news_data['title'];?></textarea>

        <label>URL-страницы   </label><br />

<textarea name="title_url" cols="100" rows="1"><?=$news_data['title_url'];?></textarea> 

        <label>Контент   </label><br />

<textarea name="content" cols="55" rows="11"><?=$news_data['content'];?></textarea>

 

        <label>Ключевые слова   </label><br />

<textarea name="keywords" cols="44" rows="5"><?=$news_data['keywords'];?></textarea>

        <label>META- теги   </label><br />

<textarea name="description" cols="44" rows="5"><?=$news_data['description'];?></textarea>

       <input type="submit" name="add" class="button" value="Сохранить"   />

   </form>

   

<?  

   }   

   if ($_GET['comand']=='new' & $_GET['save']==1)  

   {

   $count = 0;

   $table = $_GET['t'];

   

       foreach($_POST as $ArrKey => $ArrStr)

       {

       $row[$count] = $ArrKey;

       $data[$count] = "'".$_POST[$ArrKey]."'";

       $count++;

       }

       

   unset($row[$count]);

   unset($data[$count]);     

   insert_data($table, $row, $data);

   echo "Новая страница успешно добавлена!";

   }

   

   if ($_GET['comand']=='edit' & $_GET['save']==1) 

   {

   $count = 0;

   $table = $_GET['t'];

   $id = $_GET['id'];

       

       

       foreach($_POST as $ArrKey => $ArrStr)

       {

       $row[$count] = $ArrKey;

       $data[$count] = $_POST[$ArrKey];

       $count++;

       }

       

   update_data($table, $id, $row, $data);

   echo "Страница успешно отредактирована!";

   }

   

   if (empty($_GET['comand']) & empty($_GET['id']) & empty($_GET['t'])) 

   {

   $data = get_news_admin();

   

?>

   <td><input type="submit" style="cursor:pointer;" onclick="location.href='content-news.php?comand=new'"  class="login-buttons" value="Добавить новую новость." /></td>

   

<table width="100%" border="0" cellspacing="0" cellpadding="0">

   <tr>

       <td class="table_headlines">ID</td>

       <td class="table_headlines">Название</td>

       <td class="table_headlines">Ссылка</td>

       <td class="table_headlines2" width="60">Действие</td>

   </tr>

   

<?              

   foreach($data as $item):

?>

   <tr>

<td class="articles_type"><?=$item['id'];?></td>

<td class="articles_topic"><a href="#"><?=$item['title'];?></a></td>

<td class="articles_comment">

<a href="../index.php?view=<?=$item['title_url'];?>" target="_blank">Cсылка</a></td>

<td class="articles_actions">

<a href="content-news.php?comand=edit&t=news&id=<?=$item['id'];?>">

<img src="files/edit.png" alt=""/></a> 

<a href="content-news.php?comand=delete&t=news&id=<?=$item['id'];?>" >

        <img src="files/delete.png" alt=""/></a></td>

   </tr>

   

<? 

   endforeach;

   }

?>

   </table>

<?

   //Управление файлами в административной панели:

?>

   <table width="100%" border="1">

       <tr>

           <td>Имя файла</td>

           <td>Описание</td>

           <td>Предпросмотр файла(URL)</td>

           <td>Удалить</td>

       </tr>

<?

   $dir = '../userfiles/';

   $dh = opendir($dir); 

   while(false !== ($file = readdir($dh)))

   {

   $data_file_info = file_info($file);

   

       foreach($data_file_info as $item):

?>

       <tr>

           <td><?=$item['name'];?></td>

           <td><?=$item['description'];?></td>

           <td><? echo "<a href='".$dir."".$file."'>".$file."</a>"; ?></td>

           <td><a href="content-files.php?comand=delete&id=<?=$item['id'];?>" >

           <img src="files/delete.png" alt=""/></a>    

           

<?

   if($_GET['comand']=='delete')

   {   

   delete_data(files,$item['id']); 

   echo "Файл успешно удален!";

   } 

?>

           </td>

       </tr>

       

<?

       endforeach;

   }

   closedir($dh);

?>

   </table>

   <form action="content-files.php" method="post" enctype="multipart/form-data">

<label>Имя файла   </label><br /><textarea name="name" cols="100" rows="1"/></textarea><br />

<label>Описание   </label><br /><textarea name="description" cols="100" rows="1"/></textarea><br />

<p><input type="file" name="userfile" id="file"></p>

<p><input type="submit" class="login-buttons" value="Загрузить новый файл"></p>

   </form>

   

<?

   if(!empty($_FILES))

   {

   $allowed_filetypes = array('.jpg','.gif','.bmp','.png');

   $max_filesize = 52428800; 

   $upload_path = '../userfiles/';

   $filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).

   $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.

   

       if(!in_array($ext,$allowed_filetypes)) die('Данный тип файла не поддерживается.');

       

       // Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.

       if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize) die('Фаил слишком большой.');

       // Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.   

       if(!is_writable($upload_path)) die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');

       // Загружаем фаил в указанную папку и прописываем значения в базу

       if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))

       { 

       $count = 0;

       $table = 'files';

   

           foreach($_POST as $ArrKey => $ArrStr)

           {

           $row[$count] = $ArrKey;

           $data[$count] = "'".$_POST[$ArrKey]."'";

           $count++;

           }

       

       unset($row[$count]);

       unset($data[$count]);                               

       insert_data($table, $row, $data); 

       $last_id=mysql_insert_id(); // Получение ID только что добавленной информации о файле

       mysql_query(" UPDATE $table SET userfile = '$filename' WHERE id = '$last_id' ");

       echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>'; 

       }

           else

           {

           echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';

           }

   }

?>

Заключение

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

  1. Были сформулированы основные требования, которыми должна удовлетворять создаваемая CMS;
  2. Была рассмотрена предметная область и существующие CMS системы в классе lite;
  3. Была разработана база данных (определены таблиц, установлены связи между ними);
  4. Создан комплекс модулей системы;
  5. Проведено прототипирование визуальных интерфейсов системы, в процессе чего был продуман максимально простой и удобный пользовательский интерфейс;
  6. Успешно проведена апробация на проекте создания информационного сайта морской тематике. Был создан рабочий сайт с красивым дизайном, содержащий на страницах различные статьи, новости, изображения, видео-ролики и контакты.

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

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

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


Список используемых источников

  1. Л. Веллинг. Разработка WEB-приложений с помощью PHP и MySQL. 2-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2009.-800с
  2. К. Костенко. PHP.Web-профессионалам – К.BHV,2001.-208c.
  3. Мет Застра. PHP4 руководство для начинающих, – М.: Издательский дом «Вильямс», 2001.-384с.
  4. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. – Базы данных: учебник для высших учебных заведений/ Под ред. Проф. А.Д.Хомоненко.-4-е изд., СПб.:КОРОНА принт, 2009.-736 с.
  5.  Григорий Рубцов. Система администрирования контента изнутри [текст]: http://kimsite.narod.ru/webmaster/index.htm
  6.  Иванов А.В. Критерии оценки быстродействия CMS [текст]: http://www.cmslist.ru
  7.  http://www.mamboserver.ru
  8.  Красильникова О.В. Обзор рынка CMS – спрос [текст]: http://rucms.ru/visit.php?url=http://mdesign.ru
  9.  Лозовюк А.В. Анатомия CMS [текст]: http://www.hostinfo.ru/
  10.  Артамонов В.П. Центр управления CMS [текст]: http://www.cmslist.ru
  11.  Жарикова Е.В. Выбор современной CMS[текст]: www.cms.ru/pages/1235/
  12.  Мучин П.В. Безопасность жизнедеятельности [текст]: учебное пособие для вузов. – Новосибирск: СГГА, 2010. – 276 с

 

А также другие работы, которые могут Вас заинтересовать

46411. Аналіз умов та факторів виходу на зовнішній ринок українських літакобудівних підприємств 1.41 MB
  Цю стратегію переважно використовують невеликі авіакомпанії які мають невеликий парк літаків або взагалі орендують літаки. Але частка нових літаків в повітряному парку світу залишилась нижче рекордних показників зафіксованих в 1991 та 1999 роках. Прогноз оновлення парку літаків у світі Підтримка промисловості здійснюється урядами в різних формах: від істотної суттєвої частки долі у фінансуванні наукових досліджень до прямого субсидування виробництва і державного страхування експорту. На сьогоднішній день Boeing та irbus постачають на...
46412. Статус Рахункової Палати в Україні: українське законодавство, зарубіжний досвід та шляхи удосконалення 254 KB
  Нижче розглянуто основні віхи становлення Рахункової палати як органу фінансового контролю її завдання повноваження та проблеми діяльності на сучасному етапі зарубіжний досвід правового регулювання статусу аналогічних органів в окремих зарубіжних державах. На основі проведеного дослідження розроблено пропозиції щодо можливих шляхів удосконалення правового регулювання діяльності Рахункової палати в Україні. Денис КОВРИЖЕНКОексперт Лабораторії законодавчих ініціатив Основні етапи інституціоналізації Рахункової палати У 1992 році з ініціативи...
46413. Педагогічні особливості культури офіцера. Військово-педагогічні процеси 112 KB
  Сформувати у курсантів навички пошуку узагальнення критичного аналізу навча1льного матеріалу вміння висувати і захищати свої погляди з питань що розглядаються; Формувати у курсантів риси необхідні військовому керівнику для професійної діяльності; Формувати світогляд курсантів спираючись на національні історичні та військовопатріотичні традиції загальнолюдські цінності; Сприяти розвитку у курсантів почуття свідомої військової дисципліни відповідальності і цілеспрямованості.
46416. Надійність машин і устаткування 1.13 MB
  Причини утворення і розвитку несправностей деталей машин Практично будьяка несправність є наслідком зміни механічних властивостей матеріалу конструктивних розмірів деталей і стану їхньої поверхні. У свою чергу зміна механічних властивостей відбувається внаслідок зміни складу і структури матеріалу деталей. До конструктивних факторів відносяться фактори що були враховані на стадії проектування: конструктивне виконання деталей і складальних одиниць форма величина зазорів і натягів у спряженнях шорсткість і твердість поверхонь і т.;...
46417. Відновлення деталей типу вал(вісь) 264 KB
  Для відновлення нерухомих сполучень, широко розповсюджена елекроконтактне приварювання металевої стрічки (дроту). Перевага – незначний нагрів деталей, зменшення витрат наплавних матеріалів, значне підвищення продуктивності і умов праці.
46418. УСТРОЙСТВО ВВОДА АНАЛОГОВОЙ ИНФОРМАЦИИ 135.5 KB
  В настоящее время персональные компьютеры используют не только как вычислительные средства, но и как универсальные измерительные приборы. КИС на основе персонального компьютера заменяют стандартные измерительные приборы (вольтметры, осциллографы, анализаторы спектра, генераторы и пр.) системой виртуальных приборов. Причем ряд этих приборов может быть активизирован на одном персональном компьютере одновременно.
46419. СЦЕНАРІЙ КОНКУРСНОЇ ПРОГРАМИ «МІС ГІМНАЗІЙНА ВЕСНА» 55 KB
  Доброго дня дорогі друзі ВЕДУЧА. Вас вітає конкурс краси і грації ВЕДУЧА. ВЕДУЧА. А до речі кажуть що наші дівчата – найкрасивіші дівчата в світі До глядачів Це правда ВЕДУЧА.