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

На одной из предыдущих страниц мы уже рассмотрели различие между статическими и динамическими страницами и, соответственно, сайтами. Очевидно, что для работы динамического сайта необходима какая-то программная коспонента, которую часто называют "движком" сайта. Вообще-то, движок, это жаргонное выражение, правильное название - программный комплекс управления сайтом. Для больших и сложных движков часто используют название Система Управления Контентом или CMS (от английского Content Managment System). Обычно, такая система предоставляет средства для добавления, редактирования и удаления материалов на сайте, создания новых разделов, импорта информации из внешних источников и так далее. Другими словами, одна из основных задач такой системы - обеспечить облегчение выполнения повторяющихся операций. Другая задача - уже упоминавшееся разделение содержания и оформления сайта. Система управления контентом должна быть устроена так, чтобы управление информацией не требовало знаний html и знаний о внутреннем устройстве веб-страниц, что существенно снижает временные и финансовые расходы на поддержку сайта. Без CMS просто невозможно существование крупного проекта с солидным количеством материала.

Система собственной разработки или готовое решение?

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

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

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

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

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

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

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

Критерии классификации движков

Функционал сайта

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

  • Ранее уже много говорилось о разделении дизайна и содержания сайта, что обеспечивается применением таблиц стилей.
  • Любой сайт с точки зрения пользователя состоит из страниц, на которых могут быть ссылки на другие страницы того же сайта. Одной из основных составляющих функционала любого сайта должна быть удобная (для пользователя) система навигации по страницам сайта. Для вебмастера было бы удобно, чтобы движок сайта позволял простым образом добавлять новые страницы с автоматическим включением таких страниц в систему навигации сайта.
  • Добавление страниц может быть разрешено и пользователям сайта. Но давать такое право всем не следует - найдутся хулиганы, которые будут размещать всякий бред. Следовательно, в движке сайта должна быть реализована функция регистрации пользователей и предоставления разным группам различных прав. Какой-то группе пользователей может быть дано право размещать страницы без предварительной модерации, остальным - через модератора (это особая группа).
  • Еще одна из возможных функций - размещение комментариев к статьям и заметкам, публикуемым на сайте.
  • Если вам нужна возможность оценки контента, убедитесь, что выбранная вами система CMS способна это осуществить.
  • Члены сообщества могут образовывать отдельные группы по интересам, обмениваться личными собщениями, проводить коллективные обсуждения и т.д.
  • Форумы и чаты можно рассматривать как расширение функционала обмена сообщениями. Здесь задают вопросы, получают помощь, обсуждают новости. Необходима модерация.
  • На сайте можно организовать проведение опросов, сбор мнений пользователей о том или ином продукте, событии, явлении.
  • Многие мастера выделяют место на главной странице для облака тегов, который представляет собой группу слов, кликая на которые пользователи могут совершать поиск по вашему сайту. Если вы хотите иметь такую возможность, надо выбирать СМС с соответствующим функционалом.
  • Поиск по сайту можно организовать либо в виде составной части движка, либо за счет сервисов, предоставляемых Яндексом или Гуглом.
  • Статистика посещений (насколько детальна: только число заходов или с фиксацией различных данных о посетителях, как то - откуда пришел, с каким браузером, сколько находился на сайте, какие страницы смотрел и так далее). Счетчики посещений тоже могут быть частью движка или же бесплатными сервисами из Сети.
  • Можно дать право пользователям заводить почтовые ящики, можно огранизовать почтовую рассылку всем зарегистрированным пользователям или их части.
  • На сайте может быть организован электронный магазин. Такой магазин, очевидно, должен содержать каталог продаваемых товаров и обеспечивать возможность заказа товара и его оплаты.
  • Одной из необходимых составных частей движка сайта является администраторская панель, через которую обеспечивается управление пользователями, редактирование материалов, рассылка сообщений пользователям и т.д.

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

Свободный или проприетарный?

Для меня такого вопроса не существует - я рассматриваю только свободные системы управления контентом сайта. Тем более, что таких систем существует достаточно много и по функционалу некоторые из них ни в чем не уступают, а иногда и превосходят проприетарные движки. Так что дальше речь будет идти в основном о свободно-распространяемых CMS, краткие характеристики которых вы найдете на отдельной странице. Вряд ли я смогу упомянуть все существующие движки такого рода, но вы всегда можете найти более полный перечень на сайте http://www.opensourcecms.com/ или на других сайтах, посвященных CMS (смотри ссылки в конце данной страницы).

CMS или набор модулей

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

Размещение движка

Как это не покажется поначалу странным, движок сайта может функционировать не только на веб-сервере, но и на компьютере пользователя. Единственно известный мне (может быть вам известно больше, тогда сообщите) способ такой реализации динамических сайтов основан на использовании скриптового языка JavaScript. Код JavaScript включается в HTML-код страницы и отрабатывает на ПЭВМ пользователя. Примером может служить простейший движок сайта на Java Script, который вы найдете на сайте http://design.edu-rus.org/. Одним из существенных недостатков такой реализации движка является то, что не у каждого пользователя может быть установлена программная компонента, реализующая исполнение Java-скриптов.

Но большинство движков все же работают на вебсервере. Чаще всего такие движки создаются на основе языка PHP, но могут использоваться и другие языки.

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

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

Использование баз данных

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

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

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

Личный опыт

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

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

Создаем веб сайт на CMS MODx Revolution

Полезные ресурсы

Загляните на досуге

На http://www.urist-expert24.ru консультация юриста по гражданским делам. | компрессор кондиционера автомобильный бу купить, a6110700687

Счетчики

Рейтинг@Mail.ru

LiveInternet

Rambler's Top100