Система управления сайтами. Обзор основных CMS. Создание собственной системы управления контентом
Введение
Развитие компьютерных сетей и коммуникаций значительно расширяет возможности применения информационных технологий и систем обеспечения ведения электронного бизнеса. Все больше жителей Республики Беларусь предпочитают покупать товары в Интернет-магазинах, играть в Интернет-казино, читать Интернет-газеты и журналы и общаться с друзьями через Интернет. Быстро растущая Интернет – аудитория является новым рынком сбыта для компаний разного профиля. Отсутствие географических барьеров для рекламы и распространения товаров и услуг привлекает в Интернет-бизнес все новые предприятия. В Республике Беларусь есть очень успешно работающие Интернет-магазины, тем не менее, можно сказать, что белорусская коммерция ещё только делает свои первые шаги, тогда как за рубежом электронные магазины и услуги уже завоевали популярность широких слоев населения.
При учете всех требований безопасности электронная коммерция становится мощнейшим средством, способным не только изменить всю структуру торговли и денежного обращения во всем мире, но и приносить конкретную прибыль организациям ее использующим.
Необходимость систем управления для владельцев сайтов начала проявляться в тот момент, когда количество материалов на веб-сайтах начало стремительно расти. Это привело к тому, что традиционные «ручные» технологии разработки и поддержки сайтов, когда сайт состоял из статических страниц и набора дополнительных специализированных скриптов, стали не успевать за быстро меняющимися условиями бизнеса. Ввод данных на сайт требовал (как минимум) знания технологий HTML/CSS верстки, изменения структуры сайтов были сопряжены с каскадным изменением большого количества взаимосвязанных страниц. Различные автоматизированные механизмы, вроде гостевых книг и новостных лент, внедренные на сайтах как отдельные скрипты и, как правило, написанные разными специалистами, перестали удовлетворять требованиям безопасности.
Актуальность разработки систем управления сайтом обусловлена необходимостью автоматизировать процесс работы с сайтом. Оперативное обновление (добавление/удаление/редактирование) содержания, настройка модулей системы должны выполняться не разработчиками, а людьми, чьи познания в IT можно охарактеризвать как "пользователь ПК", т.е. сотрудниками компании.
Цель данного дипломного проекта: «Проектирование и разработка системы управления сайтами»
В процессе дипломного проекта требуется решить следующие задачи:
Подготовка к разработке системы управления сайтами.
Необходимость внедрения системы усправления сайтами.
Обзор и анализ существующих CMS.
Задачи и функции разрабатываемой системы управления сайтами.
Проектирование системы управления сайтами.
Структура организации и хранения данных системы управления сайтами.
Проектирование модулей управления.
Проектирование модулей пользовательской части.
Программная реализация системы управления сайтами.
Алгоритмы системы управления сайтами.
Программная реализация модулей управления системы.
Программная реализация модулей пользовательской части.
1 Подготовка к разработке системы УПРАВЛЕНИЯ САЙТАМИ
1.1 Понятие и функции системы управления сайтами
Любой Web-сайт состоит из набора страниц, а различия заключаются лишь в том, как они организованы. Существует два вида организации Web-сайта – статический и динамический. В первом случае специалисты, отвечающие за создание и поддержку сайта, пишут в HTML-форме каждую в отдельности страницу, включая ее оформление и контент. Во втором – в основе любой Web-страницы лежит шаблон, определяющий расположение в окне Web-браузера всех компонентов страницы и вставка конкретной информации производится с использованием стандартных средств, не требующих от участника процесса знания языка HTML и достаточно сложных для неспециалиста процедур публикации Web-страницы.
Если сайт состоит из множества страниц или он должен часто обновляться, то преимущество динамической организации становится очевидным. Разработчикам Web-сайта не надо переписывать всю страницу при изменении ее информационного наполнения или дизайна. Страницы не хранятся целиком, а формируются динамически при обращении к ним.
Таким образом, отделение дизайна от контента является главной отличительной особенностью динамических сайтов от статических. На этой основе возможны дальнейшие усовершенствования структуры сайта, такие как определение различных пользовательских функций и автоматизация бизнес-процессов, а самое главное, контроль поступающего на сайт контента [10].
Для создания динамического сайта возможны два пути. Во-первых, это написание собственных программ, отвечающих за создание нужных шаблонов и поддерживающих необходимые функции. При этом созданная система будет полностью отвечать потребностям, однако возможно потребует больших программистских усилий и времени. Второй путь – это воспользоваться уже существующими системами, которые и называются системами управления Web-контентом. Преимуществом этого пути является уменьшение затрат времени и сил. К его недостаткам можно отнести снижение гибкости, предоставление недостаточного или чрезмерного набора возможностей.
Под контентом (дословный перевод английского термина content, означающего содержание, содержимое) понимают информационное наполнение сайта – то есть все типы материалов, которые находятся на сервере: web-страницы, документы, программы, аудио-файлы, фильмы и так далее. Таким образом, управление контентом – это процесс управления подобными материалами. Он включает следующие элементы: размещение материалов на сервере, удаление материалов с сервера, когда в них больше нет необходимости, организацию (реорганизацию) материалов, возможность отслеживать их состояние.
Система управления содержимым/контентом (англ. Content management system, CMS) – компьютерная программа или система, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовых и мультимедиа документов (содержимое или контента). Обычно это содержимое рассматривается как неструктурированные данные предметной задачи в противоположность структурированным данным, обычно находящимися под управлением СУБД) [9].
В общем случае CMS делятся на:
ECMS – Enterprise Content Management System (Система управления контентом масштаба предприятия)
WCMS – Web Content Management System (Система управления Web-контентом).
В силу того, что ECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т.д.) термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю удобные инструменты хранения и публикации информации.
Сейчас существует множество готовых систем управления содержимым сайта, в том числе и бесплатных. Их можно разделить на три типа, по способу работы:
Генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах [1, c. 325].
Генерация страниц при редактировании. Системы этого типа суть программы для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе жертвуется интерактивность между посетителем и содержимым сайта.
Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путём кэширования – модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечению некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход – сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем.
Термин контент-менеджер обозначает род профессиональной деятельности – редактор сайта.
Большая часть современных систем управления содержимым реализуется с помощью визуального (WYSIWYG) редактора – программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст [10].
1.2 Функции системы управления сайтами
Функции систем управления контентом можно разделить на несколько основных категорий:
Создание – предоставление авторам удобных и привычных средств создания контента.
Управление – хранение контента в едином репозитории. Это позволяет следить за версиями документов, контролировать, кто и когда их изменял, убеждаться, что каждый пользователь может изменить только тот раздел, за который он отвечает. Кроме того, обеспечивается интеграция с существующими информационными источниками и ИТ-системами. CMS поддерживает контроль над рабочим потоком документов, т.е. контроль за процессом их одобрения. Таким образом, управление контентом включает в себя хранение, отслеживание версий, контроль за доступом, интеграцию с другими информационными системами и управление потоком документов.
Публикация – автоматическое размещение контента на терминале пользователя. Соответствующие инструменты автоматически адаптируют внешний вид страницы к дизайну всего сайта.
Представление – дополнительные функции, позволяющие улучшить форму представления данных; например, можно строить навигацию по структуре репозитория.
Системы управления контентом делятся на четыре основных категории, которые частично перекрываются:
Системы управления исходными кодами традиционно поддерживают управление исходными кодами программ, и часто предоставляют некоторый web-интерфейс, который может использоваться внутри корпоративной сети, а также вне ее для параллельной работы с исходными кодами.
Системы управления документами предназначены для организаций, оперирующих с большим количеством документов, например, офисы больших компаний, редакции и страховые компании.
Системы управления web-контентом представляют собой новую индустрию программных продуктов. Эти системы предназначены для разработки и управления Web-сайтами различной степени сложности. Обычно такие системы поддерживают и некоторый тип управления потоками работ.
Системы электронной коммерции – обеспечивают хранение и управление электронными каталогами товаров. По сути, эти системы незначительно отличаются друг от друга. Самое главное отличие этих систем – это люди, которые их используют.
Использование CMS предоставляет следующие преимущества:
Оперативное обновление информации – информацию публикует сотрудник, владеющий информацией, без дополнительных посредников в виде технических специалистов. CMS предназначены для автоматизации процесс публикации информации на web-сайте, предоставляя пользователям возможность самим публиковать материалы в WWW и определять их визуальное представление, используя для этого стандартные средства, не требующие знания языка HTML и достаточно сложных для неспециалиста процедур. С помощью CMS можно, не будучи профессиональным разработчиком, создавать и модифицировать информационное наполнение сайтов.
Снижение стоимости поддержки – обновление информация производится самостоятельно, нет необходимости оплачивать труд собственного или внешнего web-мастера. Снижение стоимости происходит за счет снижения потерь времени на поиски документов, пресечения дублирования и ошибок, увеличения скорости связи с партнерами и клиентами.
Предоставление дополнительных сервисов пользователю часть сервисов – поиск, форумы, голосования и т.д., требуют интерактивного взаимодействия с пользователем. Они уже реализованы в рамках CMS.
Уменьшение сроков и стоимости разработки – наиболее востребованная функциональность уже реализована в CMS и может быть сразу использована.
Повышение качества разработки – при разработке полностью или частично используются готовые модули, которые уже прошли неоднократное тестирование.
Снижение стоимости дальнейших модификаций – CMS позволяют разделить данные и их представление. Это позволяет гораздо проще изменить внешний вид сайта, чем в случае со статическим сайтом.
Среди CMS-систем часто выделяют так называемые каркасы (content management framework, CMF) – инструментарии для создания системы.
Разработкой систем управления контентом занимаются многие компании, в том числе IBM, Microsoft, Oracle, Macromedia.
Стандартизация CMS.
В последнее время начали появляться организации, пытающиеся объединить разработчиков CMS, создать единую информационную среду для потенциальных пользователей подобных систем, продвигать и утверждать единые стандарты. Прежде всего, это ассоциации OSCOM (Open Source Content Management, и CMSWatch).
OSCOM утвердила такие стандарты, как WebDav, RSS, ATOM и JSR-170.
В свою очередь, CMSWatch ежегодно выпускает отчет, включающий в себя обзор рынка CMS-систем, сравнение некоторых из них, описание жизненного цикла контента и управления им в CMS-системах [8].
Модели представления данных в CMS.
Существует классификация CMS, основанная на модели представления данных – объектной, сетевой или модульной.
Объектная модель.
Объектная модель представления данных оперирует такими понятиями, как класс и объект. Классы определяют структуру данных и представляют собой набор атрибутов (текстовая строка, целое число, изображение и т.д.). Экземпляры класса (объекты) имеют определенную структуру и могут содержать другие объекты, образуя произвольную иерархическую структуру. Объекты могут наследовать свойства, содержание и поведение объектов, которые в них содержатся. Примерами объектов служат документы, картинки, папки и учетные записи пользователей. Класс контента не хранит в себе реальных данных – такую информацию содержат объекты (экземпляры класса). Определив один класс, можно создать множество его представителей (контент объектов).
В CMS-системах данные обычно хранятся в реляционной или объектной базе данных. В первом случае объектная модель данных отображается на реляционную модель базы данных.
Как правило, системы, основанные на объектно-ориентированной модели данных, наиболее функциональные, гибкие, но, в то же время, и наиболее сложные [7, c. 78].
Сетевая модель.
Данная модель представления данных опирается на теорию графов: структура информации представляется в виде узлов с помеченными связями между ними. Фундаментом системы может служить как сетевая, так и традиционная реляционная СУБД, на которую отображена сетевая модель описания данных. В реляционных таблицах хранится информация об узлах, их атрибутах и связях между ними. Связь отличается от атрибута тем, что в ней хранится ссылка на другой узел, а в атрибуте – собственно значение. Для извлечения данных из направленного графа обычно используются рекурсивные процедуры обработки, такие как составление списков узлов, определение атрибутов узла по атрибутам родителя и др.
Модульная модель.
В подобных системах контент разделен на отдельные модули по типам содержимого. Структура данных зависит от модуля, и вся работа с контентом сосредоточена внутри модуля. Модули независимы и полностью отвечают за работу с документами данного типа. Документы описываются с помощью фиксированного набора характеристик – типы документов строго фиксированы. Расширять функциональность можно за счет добавления нового модуля, замены или редактирования существующего кода. Чаще всего нет никакой системы связей между документами разных модулей и между документами одного и того же модуля. Стандартный набор типов контента (модулей) таков: ссылки, статьи, файлы, новости, разделы, форум.
Несмотря на очевидную ограниченность модели данных, системы на ее основе наиболее популярны благодаря своей простоте. У модульных CMS-систем есть один общий недостаток – строго фиксированная в пределах модуля структура содержимого. Однако для расширения их функциональности можно воспользоваться внешними модулями, которых в Сети немало. Очевидное преимущество этих систем – возможность получения почти полностью готового к использованию портала за короткое время.
1.3 Обзор рынка CMS, выбор в сторону разработки собственного решения
В мире существует множество систем управления контентом. Условно можно выделить три основных класса подобных приложений:
Системы крупных производителей. Наиболее известными приложениями такого класса являются Microsoft Content Management Server, Documentum, Plumtree Portal, IBM WebSphere Portal и т.д. Стоимость внедрения проектов на базе данных решений составляет от 50 000 у.е. Поэтому сфера их применения очень узкая и ограничивается в основном созданием интранет-решений для крупных предприятий.
Системы с открытым исходным кодом, например, RedHat CMS и OpenCMS. Преимуществами таких систем является доступность, наличие исходного кода, возможность локализации. Однако их использование связано с определенного рода проблемами:
Отсутствие техподдержки – системы предлагаются в основном без технической поддержки и все проблемы, связанные с использованием таких систем разработчик должен решать самостоятельно.
Узкая сфера применения – чаще всего продукт явился побочным результатом решения одной из собственных задач.
Очевидно, что подобное решение может хорошо решать задачи создания такого же рода сайтов, но может быть совершенно неприспособленно для решения задач другого плана (электронная коммерция, b2b и т.д.).
Разработки небольших компаний, которые применяются на нескольких проектах, созданных непосредственно компанией-разработчиком, их подклассом являются российские разработки. Эти продукты созданы в основном различными web-студиями, имеющими большой опыт в реализации сайтов разных типов. Данные решения занимают промежуточную нишу. Практически все решения являются коммерческими, но с достаточно низкой стоимостью (100-3000$) и могут быть использованы для создания сайтов разных типов.
Zope CMF и iNetSite
Среди объектно-ориентированных CMS-систем можно встретить каркасы. Классический пример – Zope CMF. Вообще, Zope – ведущий свободно распространяемый сервер приложений, специализирующийся на управлении контентом в порталах и пользовательских – приложений. На основе этого сервера приложений построен каркас управления контентом Zope CMF, с помощью которого, в свою очередь, создан целый ряд CMS-систем, в частности, Plone.
На основе сервера приложений Zope разработана отечественная CMS iNetSite (http://www.ramax.ru/services/web_content/inetsite) – комплексный программный продукт, предназначенный для создания и последующего сопровождения веб-сайтов любой сложности и назначения.
eZ Publish
Еще одна очень распространенная объектно-ориентированная CMS – eZ Publish. Системы семейства eZ базируются на свободно распространяемом продукте eZ Publish. Наличие двух лицензий – GPL и профессиональной позволяет создавать коммерческие продукты на основе каркаса eZ Publish, обеспечивая этой системе поддержку как сообщества Open Source, так и профессиональных разработчиков.
Система eZ Publish предназначена также для создания и управления содержимым Internet-магазина, новостного сайта, фотогалереи или форума.
Платформа: PHP, MySQL, Apache. На этапе инсталляции присутствует мультиязычность (русский язык тоже есть), а очень удобный и продуманный пошаговый инсталлятор позволяет без особых осложнений установить систему на любой хостинг. eZ publish имеет возможность устанавливаться сразу в настроенной конфигурации, соответственно предназначению сайта. Среди конфигураций есть новостной сайт, корпоративный портал, интернет-магазин, блог, форум, галерея изображений и интранет-портал.
Недостаток – отсутствие встроенного визуального редактора для создания контента. отличные способности по работе с мультимедийным содержимым позволяют рекомендовать ее для построения каталогов и библиотек, магазинов для специфических немассовых товаров. Для серьезных контентных проектов система пока проигрывает из-за отсутствия визуального редактора.
MS Content Management Server
Microsoft Content Management Server (MCMS) представляет собой систему управления Web-контентом, которая дает возможность создавать, развертывать и поддерживать динамично меняющиеся Web-сайты. Благодаря интеграции с Visual Studio .NET и поддержке функций управления исходными кодами, MCMS позволяет разработчикам создавать сайты, которые потом могут управляться и поддерживаться как ИТ-специалистами, так и бизнес-пользователями. Первые могут централизованно управлять брэндингом, рабочим потоком документов и безопасностью, тогда как вторые – создавать собственный контент, управлять им и публиковать его, используя знакомые приложения, такие как Word или Internet Explorer.
Объектная модель поддерживает разработку в среде Visual Studio .Net и .Net Framework. Возможно объединение через Microsoft Solutions for Internet Business (MSIB) Content Connector с сервером Microsoft Commerce Server для создания решений в области электронной коммерции.
Content Management Server 2002 позволит публиковать материалы непосредственно из Microsoft Word, взаимодействовать с другими системами, производить быстрое развертывание, управлять цифровыми хранилищами и идентификацией, осуществлять перевод Web-серверов, XML-редактирование и поиск.
Communiware
Communiware (http://www.communiware.ru) соответствует сетевой модели представления данных. Эта система представляет собой инструментарий нового поколения для создания вертикальных Web-сайтов и порталов.
Администраторский интерфейс очень похож на интерфейс самого сайта, но при этом к каждому информационному элементу добавлены ссылки на формы его создания, редактирования и удаления. Это очень удобная и мощная концепция, позволяющая за несколько минут освоить основные операции управления содержанием.
Рекомендуется его для проектов среднего масштаба, где важна гибкость системы.
Функционирует под ОС Unix, с использованием СУБД Oracle или PostgreSQL.
Предназначен для поддержки корпоративных сайтов, электронных СМИ, электронных магазинов, порталов.
Для некоммерческих проектов распространяется бесплатно. Для других – 150 у.е.
DynaSite
Система DynaSite (http://www.reksoft.ru/products/dynasite/) ориентирована на управление сложными структурами данных. Возможны следующие варианты поставки:
DynaSite Publishing – предназначен для создания и управления корпоративном сайтом или онлайновым информационным изданием. В базовую комплектацию входят все необходимые компоненты для управления содержанием (созданием сайта и его информационным наполнением). При необходимости дополняется маркетинговыми инструментами, а также средствами электронной коммерции.
DynaSite Publishing Enterprise Edition – специализированное решение, предназначенное для компаний с разветвленной структурой, позволяющее создать неограниченное число сайтов с различными адресами. При этом все сайты будут объединены в одной базе данных DynaSite и иметь общий список пользователей и настройки.
DynaSite Commerce – позволяет в максимально короткие сроки организовать центр электронной коммерции в сети Интернет. В базовую комплектацию входят все необходимые для электронной торговли модули. Разнообразие опций позволяет использовать систему, как в розничной торговле, так и для создания сложной сбытовой структуры и управления дилерской сетью.
DynaSite Hosting – организовать на одном ядре DynaSite хостинг неограниченного числа независимых друг от друга сайтов и электронных магазинов. Решение для хостинг-провайдеров. Имеет все необходимые средства для управления системой в целом и интеграции с внешними информационными системами.
Работает в серверной ОС Microsoft с СУБД MS SQL Server и web-серверами ColdFusion Application Server, IIS, Apache.
В ядре объединены модули, реализующие базовую функциональность системы:
модуль управления содержанием (Content Management). Включает управление дизайном, структурой, шаблонами страниц. Позволяет полностью контролировать все вопросы, связанные с информационным наполнением сайта;
модуль динамической навигации (Dynamic Navigation) и персонализации (Personalization). Помогает предоставлять клиентам и партнерам именно ту информацию, в получении которой они действительно заинтересованы;
модуль управления доступом и правами пользователей. С его помощью можно организовать и контролировать все рабочие процессы, связанные с созданием сайта, – от дизайна и разработки до редакторской правки и окончательного утверждения.
Бизнес-компоненты, поставляемые с DynaSite, обеспечивают дополнительную функциональность, реализующую тот или иной бизнес-процесс.
Для связи с внешними информационными системами и создания дополнительных компонентов предусмотрен специальный интерфейс для разработчика – DynaSite SDK.
Таким образом, создаваемое с помощью DynaSite приложение может быть интегрировано с другими информационными системами, например бухгалтерской, складской, почтовой и т. д.
Предназначена для поддержки корпоративных сайтов, электронных СМИ, электронных магазинов, порталов и интернет-сообществ. Копия системы стоит 1500 у.е.
Saitistika
CMS Saitistika (http://www.saitistika.ru) – коробочный продукт. Ориентирован на дилеров (веб-разработчиков, провайдеров). Преусмотрен франчайзинг.
Работает с ОС Windows Server, web-сервером Internet Information Server и СУБД MS SQL Server.
Предназначена для поддержки корпоративных сайтов, электронных СМИ, электронных магазинов, порталов и интернет-сообществ.
NetCat
Система NetCat (http://www.netcat.ru) ориентирована на управление проектами среднего и высокого уровня сложности.
Использует СУБД Linux/FreeBSD, web-сервер Apache, технологию PHP и СУБД MySQL. Нетребовательна к системным ресурсам, что позволяет использовать ее на маломощных машинах. Стоимость 300 у.е.
PHPNuke
Модульная CMS. Распространяется бесплатно. PHPNuke это универсальная система построения сайта, с текстовым и графическим наполнением. Включает в себя все инструменты, необходимые для создания портала (в широком его понимании). Принимая во внимание большое количество реализованных по умолчанию функций, а так же наличие модулей, произведенных третьими лицами, данная CMS система может быть применена в следующих областях
интернет системы;
системы электронной коммерции;
корпоративный портал;
общественные учреждения и организации;
агентства новостей;
диалоговые компании;
информационные сайты;
системы электронного обучения.
Поддерживает 25 языков, Yahoo подобный механизм поиска, возможность комментариев в опросах, поддержка тем, менеджер дат, менеджер управления файлами, работа с заголовками, менеджер часто задаваемых вопросов, система обзоров, информационный бюллетень, категоризациа статей, многоязычное управление и т.д.
Для работы PHP-Nuke требуется:
Платформа на основе Linux или Windows
Apache Web Server
PHP версии 4.2.x или выше
База данных MySQL
Так же система работает и на платформах: FreeBSD, OS/2, MacOS и д.р.; на базах данных: mSQL, PostgreSQL, PostgreSQL_local, ODBC, ODBC_Adabas и д.р.
Mambo и Joomla!
Mambo – одна из самых популярных модульных CMS. В ее состав входит полностью основанный на БД движок с использованием PHP/MySQL. Имеется возможность работы под ОС Linux, FreeBSD, MacOSX, Solaris, AIX, SCO, WinNT, Win2K, однако ее использование в различных ОС имеет свою специфику.
Для создания контента Mambo предоставляет выбор из 3 визуальных редакторов, что упрощает редактирование материалов до уровня редактирования текста в программе Word.
На сегодня можно найти более 700 модулей и компонентов, которые удовлетворят требования любого автора сайта. Система подходит как для небольшого, так и для крупного корпоративного сайта или информационного проекта. Интернационализация сделана очень хорошо.
Joomla! появилась как результат многолетней работы над ее знаменитой предшественницей Mambo. Команда разработчиков создала Joomla! 1.0 на основе Mambo 4.5.2.3 и здесь пути этих двух систем разошлись. Принципиальных отличий между эти ми двумя CMS нет.
Xoops
Модульная CMS. Полная объектная ориентация всей архитектуры системы (сайту доступно большое количество дополнительных модулей, реализующих почти все необходимые функции). Для создания и управления внешним видом есть мощная система визуальных тем, которых достаточно много в библиотеке на сайте.
Documentum
Documentum – ведущий поставщик коммерческого программного обеспечения для интегрированного управления документами и контентом. В области управления документами его ближайшими соперниками являются Open Text, IBM и FileNet, а в сфере управления контентом – Vignette, Stellent и Interwoven.
В области управления документами решения от Documentum наиболее надежны благодаря возможностям репликации контента и управления им на очень высоком уровне детализации (для переиспользования и перенацеливания), а также поддержке преобразований сложно структурированных документов, расширяемости репозитория и поддержке XML. Важные достоинства Documentum состоят в глубоком знании процессов управления потоком документов, контроля версий и управления архивами. Однако решения Documentum могут оказаться менее эффективными, чем некоторые решения-конкуренты, при обработке представления документов на больших Web-сайтах.
Система Documentum имеет объектно-реляционную архитектуру (т.е. объектная модель данных отображается на реляционную базу данных), поэтому может быть отнесена к объектным CMS-системам.
FileNet
Этот поставщик, фокусирующийся на коммерческих системах управления контентом предприятия, долго был лидером на данном рынке, а купив компанию eGail FileNet, вышел на рынок WCM. Это позволило FileNet предложить широкий спектр услуг организациям, реализующим решения для управления контентом. До сих пор компания фокусируется преимущественно на управлении процессами и поддержке транзакционного контента
Предлагаются следующие пакеты: Business Process Manager – автоматизация сложных бизнес-процессов; Content Manager – управление, совместное использование и доступ к документам или другим формам контента; Web Content Manager – автоматизация создания, одобрения и публикации контента на Web-сайтах; Image Manager – управление фиксированными типами контента, включая изображения, факсы и т.п.
IBM Content Manager
Система IBM Content Manager позволяет организациям получать, хранить, управлять и распространять все формы цифрового контента, включая отсканированные текстовые документы, XML, HTML и мультимедиа. Content Manager – полное интегрированное решение для управления документами, предназначенное для потребителей, которые хотят пользоваться универсальным продуктом одного поставщика.
Другой ключевой момент – возможности управления web-контентом. Корпорация анонсировала объединение Content Manager с WebSphere Portal, который обеспечивает возможности публикации в Web. Теперь Content Manager будет представлять собой репозиторий для WebSphere-портала. Content Manager также объединен с WebSphere Portal с помощью портлетов, позволяющих пользователю получать доступ к контенту всех типов. После приобретения компании Tarian Software, поставщика решений для управления записями, IBM расширила спектр своего ECM-инструментария за счет средств управления жизненным циклом контента.
Модель данных Content Manager – объектно-ориентированная.
Заказчики web-сайтов на основе CMS.
Выбор наиболее подходящей CMS (Content Management System) для проекта или корпоративного сайта в первую очередь зависит от категории заказчика, бюджета, предполагаемой сложности сайта и технического обеспечения.
Предприятия и компании розничной торговли, дилеры.
Большая часть заказчиков из этой группы проявляет интерес к разработке представительских веб-сайтов, которые помимо информации о компании включают новости, каталоги продукции, механизм формирования заявки на продукцию. В ряде случаев они заинтересованы в создании механизма регистрации посетителей сайта, подключении гостевых книг и т.п. Все эти требования соответственно отражаются на требованиях к CMS.
Одним из основных требований является – обеспечить возможность управления веб-сайтом собственными силами, не прибегая к услугам разработчика или стороннего специалиста. Поэтому для данной категории заказчиков критичными являются требования удобства применения. Не менее важным является обеспечение модульности и возможность выбирать, компоновать необходимые функции веб-сайта в зависимости от пожеланий заказчика, а также добавлять новые функции по мере развития веб-сайта.
Среди этих заказчиков выделяется категория, которая может быть заинтересована в разработке сайтов электронной коммерции, но при этом реальные трудности возникают с интеграцией их системы документооборота в интернет. Зачастую рабочая база данных компании ведется сама по себе, а на сервере лежит собственная база данных, созданная специально для торгового автомата.
Собственно электронные магазины в большей степени востребованы в таких сферах торговли как: торговля цветами, книжная торговля, торговля мобильными телефонами – т.е. все, что связано с продукцией массового спроса, которая не составляет проблем в плане доставки курьером или почтой. Оплата очень часто осуществляется обычными офф-лайновыми способами – при доставке курьеру, оплатой через Сбербанк и т.п., т.е. не требуется интеграция с электронными платежными системами. Необходимо отметить, что на сегодняшний день не существует сколько-нибудь надежной электронной платежной интернет-системы. Самая популярная WebMoney. Однако никаких юридических гарантий надежности ее работы нет.
Разграничение прав доступа и установление групп пользователей и их полномочий требуются только для сайтов электронной коммерции.
Многие компании искусственно ограничивают для своих сотрудников доступ к веб-сайту и отказываются от интеграции своих рабочих БД в интернет, т.к. опасаются за безопасность данных, а вкладывать значительные средства в ее обеспечение не готовы.
Предприятия оптовой торговли.
Также заинтересованы в разработке представительских ресурсов. Освоение сети Интернет начинают, как правило, с создания обычного, зачастую статического сайта.
Существенным моментом является наличие дилеров, дистрибьюторов и рано или поздно возникающая необходимость организовать взаимодействие с ними в режиме он-лайн.
Крупные компании могут проявлять заинтересованность в создании дилерских площадок с авторизованным доступом к ним. Для таких проектов необходима интеграция с бизнес-процессами компании, базами данных. Изменения в базах данных должны происходить оперативно, отображая процессы резервирования продукции тем или иным дилером. Важно – поскольку на площадке могут одновременно работать несколько удаленных пользователей, особое значение приобретают механизмы, обеспечивающие синхронизацию данных.
Производственные предприятия.
Для данной группы потенциальных заказчиков актуальным является не только создание представительских ресурсов, но и возможность организовать работу (т.н. "виртуальное координирование") с дилерами, поставщиками, партнерами, используя возможности Интернет. Речь об организации сетей internet/intranet, создании дилерских площадок, разработке и внедрении механизмов для проведения электронных торгов, аукционов и тендеров. Что касается последних, то они зачастую организуются в рамках отраслевых порталов.
Примечание: Важно отметить, что проекты В2В часто инициируются компаниями IT-профиля как собственно интернет-проекты. Основные трудности возникают с их продвижением и привлечением целевой аудитории. Подавляющее большинство электронных торговых площадок на сегодняшний день работает в тестовом режиме, максимальная отдача при этом – от размещения информации в каталогах компаний и баннерной рекламы, платных сопутствующих услуг.
Реальную конкуренцию им (в плане привлечения и взаимодействия с целевой аудиторией) составляют отраслевые порталы. Важно отметить, что предприятия традиционного бизнеса часто начинают свою деятельность в секторе В2В именно с создания собственного вертикального портала.
Для решений В2В необходимо обеспечить интеграцию с бизнес-процессами фирмы, с рабочими базами данных, т.к. информация, отображающаяся на сайте должна всегда пребывать в актуальном состоянии, а ее обновление должно происходить оперативно и при этом проходить необходимые стадии, связанные с утверждением документов к публикации. К CMS в данном случае предъявляются требования, связанные с обеспечением механизма документооборота, а также обеспечением информационной безопасности.
Предприятия банковской и финансовой сферы.
Предприятия банковской сферы наиболее активно используют технологии интернет для взаимодействия со своими клиентами, обеспечения сервисов, необходимых предприятиям электронной коммерции и пр.
Однако многие из банковских структур по сей день располагают интернет-ресурсами, которые не соответствуют современным требованиям с точки зрения дизайна и функциональности. Некоторые банки и их филиалы не имеют собственных представительств в сети Интернет.
Предприятия сферы услуг.
Для сферы услуг возможности, предоставляемые Интернет, наиболее актуальны с точки зрения их продвижения к конечному потребителю, особое место занимают услуги, оказываемые он-лайн.
Для веб-ресурсов этой группы важна интерактивность, возможность осуществлять оперативную обратную связь с пользователями, обеспечивать их информационную поддержку. Это означает, что на веб-ресурсах используются формы анкетирования, сервисы "вопрос-ответ", реализуются форумы. WCMS таких ресурсов должна обеспечивать все необходимые функции.
В связи с мировым финансовым кризисом, многие компании урезают затраты на IT сектор. Малые и средние копании ограничиваются сайтами-визитками, крупные придерживаются идеологии использвания систем управления «под себя». Поэтому выбор пал на разработку решения собственными ресурсами, оптимизированную под чаще всего встречающиеся запросы заказчиков. К его достоинствам можно отнести повышение гибкости, предоставление необхдимого набора возможностей.
В процессе обзора коммерческих и свободных CMS мы можем наблюдать тенденцию по предоставлению заказчику системы, которая требует навыков программиста, поэтому было решено отказаться от такого подхода и следовать идеологии Microsoft Windows, т.е. система должна быть изначально ориентирована на обычного пользователя ПК.
2 ПРОЕКТИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ САЙТАМИ
2.1 Структура организации и хранения данных системы управления сайтами
Структура базы данных приложения отражена на рисунке 2.1.

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

Рисунок 2.2. – Схема функционирования CMS
Функции систем управления контентом структурированы согласно жизненному циклу системы.
Сначала группа внедрения разворачивает ядро CMS и создает в СУБД информационное хранилище контента – БД. Далее администратор предоставляет доступ к системе различным пользователям, затем создается контент, он публикуется, и в нем применяются шаблоны оформления [6, c. 317].
Создание контента.
На первом этапе необходимо создать все типы контента и схемы их метаописаний, а также настроить систему на определенный поток работ (если система поддерживает создание потоков работ, а не использует единственный встроенный). Понятие типа контента аналогично понятию класса, а элементы контента представляют собой набор экземпляров таких "классов". Типами контента являются, например, текст и изображение; экземпляром контента конкретный документ или картинка.
Следующая важная возможность – хранение информации о версии контента. Это позволяет задать номер версии любых операций изменения контента и при необходимости восстановить его. В любой момент можно отказаться от изменений и, практически в режиме реального времени, откатиться на одну из предыдущих зафиксированных версий. Строгий контроль версий необходим для определения ответственности отдельных лиц, а также для резервного и аварийного восстановления системы.
Кроме управления контентом, система должна предоставлять возможность создавать метаданные о нем. Метаданные – это сведения о данных, свойства данных. Примером метаданных служат ключевые (характерные) слова документов, предназначенные для поисковых или отчетных систем. Системы управления контентом, рассматриваемые в данном обзоре, не поддерживают метаданные, хотя можно специально ввести дополнительные типы контента, представляющие собой метаданные.
После того, как все типы контента созданы, авторы информационного наполнения начинают создавать, изменять и удалять элементы контента указанного типа. CMS уже содержит некоторый набор визуальных компонентов, например, для редактирования текста, выбора изображений, выбора шаблона представления.
Кроме непосредственно редактирования элементов контента, необходимо предусмотреть разбиение контента по категориям или рубрикам.
Создание шаблонов оформления.
В качестве решения проблемы представления в системах управления контентом используется технология шаблонов, определяющих внешний вид страницы. Разработчику шаблонов не нужно знать никаких технических тонкостей. На ранних этапах существования WWW шаблоны представляли "заготовки" HTML-кода, из которого путем манипуляций в HTML-редакторе получались готовые страницы. Сегодня такими заготовками манипулируют уже не дизайнеры в своих редакторах, а серверные web-приложения. Таким образом, современный шаблон Web-страницы представляет собой блок HTML, который благодаря специальным тегам или внедренным сценариям, облегчает включение динамически сгенерированного содержания на этапе выполнения. При использовании подобных шаблонов программистам необходим некоторый стандартизированный интерфейс для работы с ними – шаблонный движок (в английском языке существует устоявшийся термин – template engine), который может иметь разнообразные дополнительные функции, например, поддерживать кэширование шаблонов, их динамическое обновление и т.д.
Публикация контента.
Механизм публикации информации в системе управления контентом отвечает за процесс создания, редактирования и удаления шаблонов страниц, а также за сопоставление типов контента и шаблонов страниц. В состав дополнительных возможностей системы публикации может входить предварительная генерация статической версии сайта. Эта опция очень полезна в случае размещения информационной системы на оборудовании с ограниченными возможностями.
Типичный процесс публикации информации в World Wide Web реализован в Microsoft Content Management Server. Обычным приемом обеспечения оформления информационного наполнения являются шаблоны представления информации. Поэтому первым этапом процесса является создание наборов шаблонов. Типичный шаблон содержит разметку HTML и места, куда в дальнейшем будут вставлены данные (placeholder'ы в терминологии Microsoft). Далее на основе этих шаблонов авторы информационного наполнения создают страницы и представляют их редакторам для одобрения. Редакторы, в свою очередь, могут либо отклонить страницу и вернуть ее автору на доработку, либо одобрить ее и передать модератору сайта. В первом случае процесс повторяется снова, во втором же модератор сайта проверяет расположение страницы на сайте, дату и срок ее публикации. Если все в порядке, страница становится видна пользователям. Несмотря на то, что рабочий процесс в Microsoft Content Management Server фиксирован и не может быть изменен в дальнейшем, подобное решение подходит большинству пользователей, которым необходимо публиковать информацию в World Wide Web [3, c. 118].
Управление пользователями.
Управление пользователями включает создание, изменение и удаление учетных записей отдельных пользователей и их групп, а также назначение прав для работы с элементами контента. Важной частью требований является наличие пользовательских профилей (profiles), с помощью которых можно сгенерировать персональное представление информации для каждого пользователя. Полезной является и возможность пользователя делегировать свои права. Это позволяет пользователям переназначать исполнителя конкретной работы и избегать простоев из-за отсутствия отдельного лица.
Системы управления контентом управляют учетными записями пользователей на основе собственных групп, не используя существующие идентификационные системы, например, Windows. Аутентификация средствами Windows позволила бы значительно упростить администрирование. При этом система управления контентом могла бы использовать операционную систему локального компьютера или контролера домена для проверки и сопровождения учетной записи пользователя.
Представление информации создается на основе данных, а также предпочтений конкретного пользователя. Персонификация достигается путем использование профилей – специальных записей, в которых хранится информация, специфичная для конкретных пользователей.
В самом общем виде архитектуру систем управления Web-контентом можно представить следующим образом (рисунок 2.3).

Рисунок 2.3 – Архитектура CMS
В основе данной технологии лежит трехзвенная архитектура клиент/сервер. Такая архитектура разбивает процесс обработки данных между клиентом, сервером приложений и хранилищем данных. В отличие от традиционной двухзвенной архитектуры здесь присутствует сервер приложений как промежуточное звено между клиентом и хранилищем данных.
В системе присутствует два хранилища. В первом (обычно реляционная СУБД) хранятся все данные, которые публикуются на сайте. Во втором (обычно файловая система) хранятся элементы представления – шаблоны, графические изображения и т.д.
Получая запрос, сервер приложений обрабатывает его, связываясь с хранилищем данных, в каком бы месте необходимые данные не находились. Клиент лишь получает результат в виде HTML-файла. Таким образом, сервер приложений является стандартизованной платформой для динамической доставки контента и построения основных приложений. Серверов приложений может быть много, а связь с ними происходит через Web-сервер.
Рассмотрим пример реализации архитектуры системы управления контентом на примере CMS DotNetNuke 4 (рисунок 2.4).

Рисунок 2.4 – Архитектура CMS на примере DNN
Ядро системы управления контентом представляет собой динамический сайт, созданный на языке Visual Basic.NET с использованием технологи и ASP.NET 2.0. Поэтому для ее функционирования требуется web-сервер с поддержкой этой технологии. В качестве такого сервера может выступать Microsoft Internet Information Services 5 или 6. В качестве хранилища данных CMS DotNetNuke 4 может использовать файловую систему web-сервера и базу данных под управлением СУБД Microsoft SQL Server. Поддерживаются все варианты поставки этой СУБД и версии 2000/2005. СУБД может функционировать как в операционной системе web-сервера, так и на удаленном компьютере. В первом случае возможно использование бесплатных версий MS SQL Server – Microsoft Desktop Engine и Microsoft SQL Server Express 2005.
2.2 Проектирование модулей управления системы
Для реализации модулей управления системы управления сайтами потребуется спроектировать и разработать пользовательские элементы управления, которые будут являться отдельными независимыми модулями системы. В проекте, элементы управления будут разделены на три категории.
Элементы управления ввода информации.
Элементы управления вывода информации.
Элементы управления, которые реализуют логику, которая не относиться к первым двум категориям.
Работа модулей управления системы реализована следующим образом: существует две страницы, страница ввода и страница вывода. В зависимости от того, какой модуль меню выберет пользователь, на страницы будут загружаться соответствующие пользовательские элементы управления (рисунок 2.5).

Рисунок 2.5 – Паттерн проектирования Carrier-Rider-Mapper
|
Общая архитектура продукта построена на паттерне проектирования Carrier-Rider-Mapper.
Поток
информации от носителя к клиенту
(считывание): Carrier -> Reader ->
Scanner->Client. |

Рисунок 2.6 – Архитектура продукта
Модульность, API, CMF:
модули представляют собой независимые сборки (dll), файлы ресурсов (стили, картинки), страницы для административного раздела, компоненты (ascx). Также модуль может иметь свою структуру в БД;
все страницы сайта и компоненты написаны с использованием API. Работа с БД напрямую запрещена – доступ к данным возможен только через API модули;
обмен информацией между модулями происходит при помощи системы команд (событий);
при обновлении происходит модификация только файлов продукта, при этом API функции остаются совместимы, поэтому обновление происходит без последствий для публичной части сайта.
Публичный раздел:
структура сайта находится в физических файлах и папках – статика;
страницы – обычные ASPX и могут содержать код (обычно вызов компонентов);
динамический контент (новости, каталог) выводится компонентами из модулей (информационные блоки).
Компоненты:
Составные блоки сайта:
компонент новостей, компонент каталога, компонент поиска и т.д.;
разделение логики (компонент) и представления (шаблон компонента);
компонент лежит в отдельной папке и может содержать ресурсы;
многостраничные компоненты.
Многостраничные компоненты (рисунок 2.7):

Рисунок 2.7 – Набор взаимосвязанных страниц
Недостатки реализации с помощью обычных компонентов:
приходится создавать множество страниц для размещения компонентов;
приходится настраивать свойства каждого из компонентов (в том числе пересекающиеся);
связи между компонентами либо жестко зашиты в код компонентов (что не универсально), либо сложны для настройки;
нет возможности автоматически добавить новую страницу в смысловой блок (в публичной части).
Недостатки реализации одним большим компонентом:
нет возможности использовать составные части по отдельности;
дублирование кода.
2.3 Проектирование модулей пользовательской части
Модули пользовательской части приложения состоят из страниц и элементов управления. По количеству их гораздо меньше модулей управления системы.
Страницы системы:
MasterPage.master;
Default.aspx.
MasterPage – базовая страница приложения. Данную страницу наследуют (реализуют) все страницы пользовательской части. В этот контейнер помещаются необходимые контролы или модули в зависимости от страницы на которую заходит посетитель, то что необходимо вставить определяет PageModule.
Default.aspx – стартовая страница приложения.
Элементы управления и модули системы:
BannerBlock.ascx;
LastNews.ascx;
SearchControl.ascx;
SiteMapControl.ascx;
SubscriptionControl.ascx;
VoteQuestionControl.ascx;
Feedback.aspx;
ViewArticles.aspx;
ViewNews.aspx;
Error.aspx;
Print.aspx;
Login.aspx.
BannerBlock.ascx – банерный блок.
LastNews.ascx – блок из последних новостей.
SearchControl.ascx – элемент управления для поиска по сайту.
SiteMapControl.ascx – элемент управления отображает карту сайта по связям страниц.
SubscriptionControl.ascx – модуль подписки на новости.
VoteQuestionControl.ascx – модуль для проведения опросов.
Feedback.aspx – форма обратной связи.
ViewArticles.aspx – блок, куда выводиться содержание статьи.
ViewNews.aspx – блок, куда выводиться содержание новости.
Error.aspx – блок, куда выводиться содержание ошибки.
Print.aspx – версия печати для статьи или новости.
Login.aspx – форма авторизации.
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СИСТЕМЫ УПРАВЛЕНИЯ САЙТАМИ
3.1 Алгоритмы системы управления сайтами
Ниже представлены алгоритмы базовых моделей системы.
namespace Cleopatra.Objects
{
Базовый класс, для всех маппируемых сущностей.
public abstract class Entity : IEntity
{
Идентификатор.
#region Свойство ID
public int ID
{
get { return _ID; }
}
[Mapped(true)]
protected int _ID;
#endregion
Для увеличения производительности за счет метода Метод GetHashCode, он предназаначен для получения некоторого числа (хэш-кода), которое используется обычно для получения быстрого доступа к элементу некоторой "структуры" (нет никакой параллели со struct), подобной System.Collections.Hashtable.
public override int GetHashCode()
{
if (_ID > 0)
return _ID;
return base.GetHashCode();
}
}
}
namespace Cleopatra.Objects
{
Интерфейс необходимый для всех маппируемых сущностей. Его реализуют все интерфейсы, поэтому напрямую от него наследоваться не следует.
public interface IEntity
{
Имя объекта.
int ID { get; }
}
}
namespace Cleopatra.Objects
{
Cущность.
internal
sealed partial class Essence : Entity, IComparable
{
Название столбца для данной сущности (по умолчанию "Name").
#region Свойство ColumnName
public string ColumnName
{
get
{
if (_ColumnName == string.Empty)
return "Name";
return _ColumnName;
}
}
[Mapped]
private string _ColumnName;
#endregion
Ссылка, ведущая с рабочего стола (по умолчанию "Records.aspx?table=" + _Key).
#region Свойство URL
public string URL
{
get
{
if (_URL == string.Empty)
return "Records.aspx?table=" + _Key;
return _URL;
}
}
[Mapped]
private string _URL;
#endregion
Является ли данная сущность мапируемой сущностью.
#region Свойство IsEntity
public bool IsEntity
{
get
{
return ((_Key != string.Empty) || (_URL == string.Empty));
}
}
#endregion
Будут ли отображены объекты сущности на рабочем столе.
#region Свойство IsDesktop
public bool IsDesktop
{
get
{
if (_IsEnabled == false)
return false;
return _IsDesktop;
}
set { _IsDesktop = value; }
}
[Mapped]
private bool _IsDesktop;
#endregion
Возвращает true, если пользователь с ID = userID имеет доступ к данной сущности.
public bool GetAccess(int userID)
{
if (userID == Auth.AdminID)
return true;
List
foreach (User2Essence Item in AL)
if ((Item.EssenceID == _ID) && (Item.UserID == userID))
return true;
return false;
}
#region Реализация IKey
public string Key
{
get
{
if (_Key == string.Empty)
return _Name;
return _Key;
}
set { _Key = value; }
}
[Mapped]
private string _Key;
#endregion
}
}
namespace Cleopatra.Objects
{
Элемент алфавитного указателя.
[Logable]
public
sealed partial class Index : Entity, IComparable
{
Конструктор.
public Index() { }
Текст. HTML код.
#region Свойство Text
public string Text
{
get { return _Text; }
set { _Text = value; }
}
[Mapped]
private string _Text;
#endregion
#region Реализация IName
public string Name
{
get { return _Name; }
set { _Name = value; }
}
[Mapped]
private string _Name;
#endregion
#region Реализация IDate
public DateTime DateModify
{
get { return _DateModify; }
set { _DateModify = value; }
}
[Mapped]
private DateTime _DateModify;
#endregion
#region Реализация ISearchable
string[] ISearchable.Data
{
get
{
return new string[] { _Name, _Text };
}
}
string ISearchable.URL
{
get
{
return string.Format("view{0}.aspx?ID={1}", this.GetType().Name, _ID);
}
}
#endregion
#region Реализация IComparable
int
IComparable
{
return _Name.CompareTo(other._Name);
}
#endregion
}
}
3.2 Программная реализация модулей управления
Т.к. объем всех алгоритмов модулей управления системы очень велик в данной главе будут описаны только основные модули.
Модуль редактирования статей.
namespace Cleopatra.UI.CMS
{
Страница редактирования Article.
public partial class EditArticle : TranslateblePage
{
protected BoxText tbTags;
protected BoxText tbName;
protected BoxHTML tbText;
protected Label lbKey;
protected CheckBox cbProtect;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindData();
}
private void BindData()
{
cbProtect.Visible = (Auth.CurrentUserID == Auth.AdminID);
int ID = FooID;
if (ID == -1)
return;
Article Node = App.Storage.GetItem ", Item.ID, Item.Name);
else
Sb.AppendFormat("
Sb.Append(InitTree(Item.ID, fooID));
Sb.Append("");
}
}
Sb.Append("");
return Sb.ToString();
}
///
/// Сохраняет элемент меню, переданный через point
///
private static void SaveTree(Point point, int sortOrder)
{
MenuNode Node =
App.Storage.GetItem
if (Node == null)
return;
if ((Node.ParentID != point.Y) || (Node.SortOrder != sortOrder))
{
Node.ParentID = point.Y;
Node.SortOrder = sortOrder;
App.Storage.Update(Node);
}
}
///
/// Для прав доступа
///
#region Свойство EssenceType
public override Type EssenceType
{
get { return typeof(MenuNode); }
}
#endregion
}
}
ПРИЛОЖЕНИЕ 2
Руководство пользователя
Вход в систему управления сайтом
Операции по изменению содержания сайта, выполняются в системе управления сайтом. Доступ в него, имеют пользователи, которым предоставлены соответствующие права. Чтобы попасть в этот раздел. В строке адреса сайта, после последнего символа “/” напишите “CMS”, например, http://www.mysite.com/CMS. Нажмите ввод, и Вы попадёте на страницу аутентификации (рисунок П.2.1).

Рисунок П.2.1 – Форма аутентификации
Здесь необходимо ввести логин и пароль, а так же, Verification Code, указанный справа. Стоит обратить внимание на флажок “Remember me”. Если он установлен, то система вас “запомнит”, и при следующей попытке войти в систему управления, вам уже не надо будет повторно заполнять данную форму.
Если Вы ввели правильные аутентификационные данные, Вы попадёте на рабочий стол системы управления, откуда получите доступ к функционалу сайта.
Управление новостями.
Администратор сайта или другой пользователь, обладающий соответствующими правами, может добавлять/редактировать/удалять новости. Для этого необходимо зайти в систему управления. И выбрать элемент рабочего стала “Новости” (рисунок П.2.2).

Рисунок П.2.2 – Рабочий стол

Рисунок П.2.3 – Список новостей
Далее Вы попадёте в модуль «Новости» (рисунок П.2.3). В списке новостей, находятся все новости, представленные на сайте.
Для удаления новостей, отметьте флажком соответствующие новости, и нажмите кнопку “Удалить”, находящуюся внизу каталога. Можно изменять количество новостей, отображаемых на одной странице (по умолчанию 20), это очень удобно, если новостей достаточно много. Для этого воспользуйтесь
элементом
управления, проиллюстрированном на
рисунке П.2.4.
Рисунок П.2.4
Так же отображаемые новости можно сортировать, по названию или дате публикации. Для этого кликните мышкой по заголовку соответствующего столбца.Если Вам нужно создать новую новость, кликните мышкой по кнопке “Создать”, внизу под таблицей.
Для редактирования новости кликните по строке с заголовком соответствующей новости, и Вы попадёте на форму редактирования.
Рассмотрим редактируемые поля новости.
Заголовок новости – обязательное текстовое поле, в котором указывается название новости.
Д
Рисунок П.2.5 – Календарь
ата – дата публикации новости. На сайте новости отображаются в соответствии с датой публикации. Самые последние новости отображаются на главной странице. А самые старые новости, находятся в архиве новостей, и их можно просмотреть, выбрав соответствующий год и месяц публикации новости.Для изменения даты публикации новости, кликните на картинку “календаря”, расположенную справа от поля даты. Появиться интерактивный календарь (рисунок П.2.5), в котором мышкой можно выбрать необходимый год/месяц/число. Если это поле не заполнять. В качестве дня публикации, будет взят сегодняшний день.
Краткий текст – текстовое поле, в котором указывается анонс новости. Здесь можно кратко (1-2 предложения) написать, о чём новость, чтобы заинтересовать пользователя, и у него возникло желание прочесть новость целиком. Если это поле оставить не заполненным, то в качестве текста будет взято начало содержания новости.
Текст – содержание новости. Чтобы изменить содержание новости, необходимо кликнуть на кнопку “Редактировать”, находящуюся под текстовым полем. Появиться новое окно, с визуальным текстовым редактором, внешним видом похожим на редактор Microsoft Word, подробнее об этом визуальном редакторе будет рассказано, ниже. Визуальный редактор, позволяет применять стили оформления, вставлять изображения, изменять размеры шрифтов и т.д., что позволяет оформить содержание новости с учётом фантазии автора.
Изображение. За каждой новостью можно закрепить картинку, которая будет ассоциироваться с данной новостью. Для этого кликните, на кнопку “Обзор”, и в появившемся диалоговом окне, выберите картинку на вашем локальном компьютере. Картинка будет загружена на сервер, и её размеры изменены в соответствии с общим стандартом. Поэтому нету надобности заранее обрезать/уменьшать картинку, система сделает это сама. Необходимо учитывать, что картинка должна быть одного из перечисленных форматов: JPG, GIF, PNG. Иначе система проигнорирует вашу картинку.
Новости – являются типовым модулем, поэтому функциональность (добавление, удаление, редактирование, сортировка, вывод на странице), описанная выше, применима и к другим модулям.
Управлениями статьями.
Статьи по своей структуре похожи на новости. Администрирование статей происходит похожим способом. В системе управления, на рабочем столе есть пункт “Статьи”, кликнув по которому мы попадаем в модуль «Статьи» (рисунок П.2.6).

Рисунок П.2.6 – Список статей
Каждая статья отображается на сайте, на своей странице, адрес этой страницы указан во втором столбце, таблицы.
Статьи, так же как и новости, можно удалять или добавлять новые. Кликнув по строке с соответствующей статьёй, Вы попадёте на форму редактирования статьи.
Поля формы редактирования статьи, похожи на поля формы редактирования новости. Есть одно уникальное поле характерное только для статей, это поле “Ключевые слова”. В этом поле, через пробел, указываются тезисы статьи и основные термины. Это нужно для оптимизации поиска. Поисковые системы, такие как Google, Yandex и др. будут использовать указанные здесь слова в своём механизме поиска. Правильно составленные “ключевые слова” помогут в продвижении сайта, и смогут поднять выше ваш сайт в результатах поиска, в подобных поисковых системах.
В
тексте статьи можно оставлять ссылки
на другие статьи сайта (перекрестные
ссылки). Для этого в качестве адреса
статьи, указывается её ID.
Посмотреть который можно внизу формы
редактирования статьи (рис. 2.7).
Так же пункты меню сайта, могут ссылаться на ту или иную статью. Как добавить статью в меню, будет описано ниже.
Рисунок П.2.7 – ID статьи
Изменение структуры меню.
Меню является одним из важнейших способов навигации по сайту. Меню имеет иерархическую структуру. Т.е. в одни элементы меню, могут входить другие элементы меню, в которые, в свою очередь, могут входить третьи, и т.д. Элементы меню можно создавать, удалять, изменять, переносить из одной “ветки” в другую. Для этого в системе управления, на рабочем столе есть пункт “Меню”, кликнув по которому мы попадаем в модуль «Меню».
Модуль по своей структуре похож, на рассматриваемые ранее, модули новостей и статей.
Рассмотрим форму редактирования элемента меню. Стоит обратить внимание на панель “Предпросмотр”. На которой отображена вся структура меню, а текущий элемент, подсвечен синим цветом. Важной особенностью этой панели является то что, структуру меню можно менять, перетягивая мышкой (Drag&Drop), элементы из одной ветки в другую, как это показано на рисунке П.2.8. Каждый элемент меню, помимо названия, имеет адрес ссылки, куда будет вести этот пункт.
В
качестве адреса можно указать любой
Интернет адрес, в том числе и на внешний
ресурс, для этого его надо написать в
текстовом поле “URL”.
Как правило, в качестве адресов пунктов
меню используются внутренние разделы
сайта, например статьи. Для того, чтобы
связать элемент меню с внутреннем
ресурсом, выберите его из списка и
кликните мышкой по оранжевой стрелочке,
направленной влево (рисунок 2.8). На
некоторых сайтах, меню, в связи с
особенностями дизайна, не выпадающее.
По
этому, на самом сайте, в меню отображается
только верхний уровень, а все вложенные
элементы будут проигнорированы!
Рисунок П.2.8 – Структура меню

Рисунок П.2.9 – URL элемента меню
Структура меню так же используется как основа для карты сайта (Sitemap).
Управление баннерами на сайте.
Баннерный блок – это область на сайте, специально выделенная для отображения нескольких рекламных баннеров. Баннерных блоков на сайте может быть несколько, но изменять их место расположения нельзя, так как баннерные блоки являются частью заранее разработанного дизайна. Но можно изменять содержание баннерного блока. В баннерном блоке заранее определено кол-во “свободных мест”. Но баннеров, относящихся к данному блоку, может быть и больше. В этом случае, в баннерном блоке будут отображены случайным образом выбранные баннеры.
Рассмотрим форму редактирования баннера.
Название – обязательное текстовое поле (на сайте оно нигде не отображается) для внутренней идентификации.
Начало показа/конец показа – здесь указывается период, который баннер будет активен (будет отображаться на сайте). До и после этого периода баннер на сайте увидеть будет нельзя. Изменение даты, аналогично изменению даты в модуле «Новости».
Блок – здесь из списка необходимо выбрать баннерный блок, в котором будет отображаться данный баннер.
HTML код – сюда вставляется “тело” баннера, это может быть картинка со ссылкой, Flash, или другой элемент. Как правило, сайт на который будет ссылаться баннер, предоставляет HTML код своего баннера. По этому администратору нет необходимости знать особенности HTML, для добавления баннеров.
Систему баннеров и баннерных блоков иногда удобно использовать и не только в рекламных целях, а например, в целях “декоративных” динамических ссылок на внутренние ресурсы сайта.
Файловый менеджер.
Иногда возникает необходимость загрузить на сервер определённые файлы: документы, презентации, картинки, видео. Для этих целей используется файловый менеджер.
Попасть в файловый менеджер, можно из системы управления на рабочем столе, кликнув мышкой по пункту “Файлы”.
В файловом менеджере реализованы базовые функции по работе с файлами сайта. Есть возможность удалять, загружать на сервер, скачивать файлы, создавать/удалять папки. К некоторым папкам доступ на запись может быть закрыт, т.е. их содержание можно просматривать и скачивать, но нельзя изменять, это сделано, чтобы обеспечить более высокий уровень безопасности сайта, и не дать возможность пользователю случайно удалить системные файлы, которые необходимы для нормальной работы сайта.
В корневой директории всегда будет присутствовать папка “UserInfo”, с полным доступом. Именно сюда необходимо загружать все новые пользовательские файлы. Загружаются они с помощью специального элемента управления, расположенного снизу, под таблицей. Для этого кликните, на кнопку “Обзор”, и в появившемся стандартном диалоговом окне выбора файла, выберите файл на вашем локальном компьютере, и нажмите “Добавить”. Можно загружать одновременно несколько файлов. Для этого необходимо кликнуть на “плюсик”, рядом с кнопкой “Browse”. И появиться новое поле для выбора файла (рисунок П.2.10).

Рисунок П.2.10 – Файловый менеджер
Встраиваемые блоки.
Встраиваемые блоки своей функциональностью похожи на статьи и баннеры одновременно. Встраиваемый блок – это изменяемый контент, который расположен в определённых частях сайта. Примером встраиваемого блока может быть контактная информация, с номерами телефонов, адресами, расположенная внизу или вверху сайта.
Места, в которых эти блоки расположены, изменять уже нельзя, но можно изменять их содержание.
Особенности использования визуального редактора.
При активном администрировании сайта, хотя бы раз придётся столкнуться с визуальным текстовым редактором. Он используется при создании статей, новостей, встраиваемых блоков, и т.д.
Для того чтобы воспользоваться редактором. Необходимо кликнуть мышкой по кнопке “Редактировать”, на форме, где находиться соответствующее текстовое поле.
Перед вами раскроется визуальный текстовый редактор (рисунок П.2.12), и пока Вы не закончите с ним работу, Вы не сможете вернуться в состояние редактирования статьи или новости. Если скорость соединения с сетью Интернет, небольшая, то необходимо подождать пока редактор загрузиться (от 1сек. до 1мин.)

Рисунок П.2.12 – WYSIWYG редактор
Стоит обратить внимание на 2 важных момента, которые часто вызывают трудности. Как правило, текст не пишется непосредственно в данном визуальном редакторе, а вставляется из внешнего редактора, из заранее подготовленных документов, в большинстве случаев в Microsoft Word. Такой текст необходимо вставлять с помощью специальной кнопки “Вставить из Microsoft Word”. Иначе вставленный текст будет сильно отличаться от исходного. Это связанно с особенностей формата Word. В идеале, копируемый текст из Word, предназначен для вставки в офисные приложения Microsoft, или в другие программы, но уже с полной потеряй форматирования (как это происходит при вставке из Word в блокнот). Для того чтобы максимально сохранить исходное форматирование текста, при вставке из Word следует пользоваться описанной выше функциональностью.
Второй момент, на который необходимо обратить внимание это вставка картинок, этот процесс рассмотрим подробнее.
Для того чтобы вставить изображение, сразу установите курсор в позицию, куда она будет вставлена. Потом кликните на соответствующую кнопку, на панели инструментов (она выделена на рисунке П.2.12). Перед вами откроется диалоговое окно вставки картинки (рисунок П.2.13). В нём Вы можете выбрать необходимое вам изображение, двойным щёлчком мыши. Если это изображение ещё не загружено на сервер, Вы можете его загрузить в этом же окне, точно так же как это делается в файловом менеджере. Здесь же, можно указать выравнивание изображения, т.е. к какому краю оно будет прижато.
Следует отметить, что визуальный редактор не обладает такими возможностями как настольные офисные приложения. Это связано с ограниченностью возможностей приложений работающих через Web. Визуальный редактор, используемый в системе, является одним из самых передовых и многофункциональных визуальных редакторов в мире, работающих под Web, на данный момент. И при этом и он не лишён недостатков.

Рисунок П.2.13 – Диалоговое окно вставки изображения

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