ДонНТУ Портал магистров

Использование CMS для разработки веб-сайтов

Предпосылки создания CMS

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

Другая веха развития интернет – лавинообразное внедрение мультимедиа возможностей. Современный мультимедиа ресурс предлагает пользователю не просто доступ к различной видео-, аудио-, графической информации, но и обширные возможности по взаимодействию с ней. В качестве неизбитого примера можно привести ресурс Grooveshark. Он был создан в 2007 году и представляет собой музыкальный веб-сайт с потоковым мультимедиа и рекомендательным сервисом, позволяющий пользователям искать, слушать, загружать и сохранять музыку бесплатно [1].

Третья веха, которая является основополагающей для первых двух и которая в конечном итоге дала им толчок – динамичность современного интернета. В качестве отправной точки зарождения данной черты можно принять 1995 год, когда Датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учета посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Ледорф назвал набор Personal Home Page. Вскоре, с целью увеличения производительности и функциональности, на языке C был написан новый интерпретатор шаблонов PHP/FI (Personal Home Page / Forms Interpreter). PHP/FI включал базовую функциональность современного PHP: оформление переменных в стиле Perl ($имя_переменной для вывода значения), автоматическую обработку форм и встраиваемость в HTML-текст и многое другое. Новорождённый язык отличался от своего прародителя более простым и ограниченным синтаксисом [2].

Появление PHP во многом определило дальнейший путь развития веб-ресурсов. Содержимое страниц обрело динамику – пользователю возвращается информация, сформированная на стороне сервера динамически и в соответствии с заданным запросом. Как правило, для отображения любого количества однотипных страниц используется одна страница-шаблон, в которую подгружается соответствующее содержимое, это позволяет одномоментно корректировать внешний вид сайта (множество всех его страниц), редактируя всего лишь один шаблон [3].

Популярные CMS

Вместе с ростом сайтов появилась необходимость не только предоставлять динамическое содержимое пользователю, но и иметь инструментарий для удобного, производительного и эффективного создания и редактирования информации для сайта. Эта необходимость стала предпосылкой к развитию систем управления содержимым (Content Management System, CMS).

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

К основным возможностям CMS можно отнести:

К основным принципам реализации относятся:

Знакомство с CMS

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

Поскольку форумная тематика была ближе всего, я решил делать форум обо всем. Нельзя сказать, чтобы идея была оригинальной, но в 2007 году все еще имела актуальность. Заниматься форумом в одиночку дело скучное и монотонное, поэтому я немного колеблясь, оставил запись о наборе в команду форума на форуме сайта тогда еще выпускавшегося журнала ДПК. К моему удивлению, я получил 5–7 ответов от людей примерно моего возраста, которые были не прочь помочь с развитием форума.

В лучшие дни своего существования форум посещало около 1000–2000 человек в день (согласно сервисам статистики), однако преимущественно программная тематика форума давала о себе знать, и в лучшем случае в день общалось на форуме 10–15 человек. Со временем у большей части команды появились другие интересы. Постепенно люди поступали в ВУЗы, времени и желания заниматься форумом становилось все меньше. За время активного существования форума приходилось понемногу изучать HTML, временами со страхом заглядывать в исходники самого движка, редактировать и изменять темы оформления. Мне это нравилось, и хотелось этим заниматься на более серьезном уровне.

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

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

Сразу оговорюсь, что работать мне пришлось исключительно с CMS Drupal, но в качестве краткого экскурса будет не лишним привести данные о других популярных на данное время CMS. Самые близкие конкуренты Drupal – CMS Joomla! и WordPress.

Логотип Joomla!

Joomla! является ответвлением известной CMS Mambo. В сентябре 2005 года была выпущена первая версия Joomla!, по сути являющаяся переименованной актуальной на тот момент версией Mambo с исправлениями найденных на тот момент ошибок и уязвимостей. Летом 2008 года по числу ежедневных скачиваний Joomla! заняла второе место (лидерство на тот момент удерживал WordPress). Свою популярность Joomla! завоевала благодаря простоте и дружелюбности интерфейса, огромному количеству доступных дополнительных модулей, позволяющих расширить возможности движка, большому количеству шаблонов оформления, а также благодаря хорошей поддержке. Используя Joomla! можно реализовать проекты практически любой сложности.

Логотип Wordpress

WordPress разрабатывается с лета 2001 года – 12 июня Мишель Вальдриги начал разработку движка b2. Впоследствии к проекту присоединились Мэтт Мюлленвег и Майк Литтл. В январе 2003 года Вальдриги прекратил разработку, поэтому автором WordPress считается Мэтт Мюлленвег, ему же принадлежат права на товарную марку WordPress [5]. И хотя WordPress имеет встроенную систему тем и плагинов, позволяющую делать на его базе проекты различной сложности, наибольшую популярность он обрел все-таки в качестве движка для создания блогов или новостных ресурсов. Удачная архитектура, скорость работы и расширяемость при помощи плагинов обеспечили WordPress первое место в рейтинге популярности CMS.

Логотип Drupal

Разработку Drupal начал в 2000 году бельгиец Дрис Бёйтарт. Название drupal является искаженным произношением голландского слова drupel (капля) и появилось в результате опечатки – во время регистрации доменного имени для сайта, построенного с использованием первой версии будущего движка. Вместо dorp.org было зарегистрировано имя drop.org. В 2001 году Дрис опубликовал исходный код drop.org под именем Drupal. C тех пор разработка переместилась на зарегистрированный позднее сайт drupal.org, который приобрел статус официального сайта проекта [6]. Drupal поддерживает мультиязычность, имеет модульную архитектуру, позволяющую значительно расширить функциональность; дизайн сайтов на Drupal можно менять с помощью тем оформлений, благо этому способствует хорошая система темизации, в которой не слишком сложно разобраться.

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

Разработка с использованием CMS Drupal

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

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

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

Пример реализации сайта на Drupal, Sporty Princess

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

Пример реализации сайта на Drupal, The Denim Star Project

Все вышеперечисленное реализуется несколькими модулями. Ubercart – добавляет в CMS Drupal функции интернет-магазина. Это целый набор модулей, полноценно реализующий данную функцию. Категории товаров реализуются стандартным модулем Таксономия. Если говорить о многоуровневых меню, то модуль Taxonomy menu позволит динамически обновлять меню сайта в соответствии с иерархией категорий, тем самым упрощая процесс администрирования магазина. А для визуализации меню магазина можно использовать один из многочисленных модулей, значительно расширяющих встроенную систему меню, например, Megamenu. Используя эти два модуля можно создать меню категорий, несколько схожее на то, что имеется на сайте hotline.ua.

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

Пример реализации сайта на Drupal, Demetra - Цветочные технологии

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

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

Источники

  1. Grooveshark
  2. История PHP
  3. Динамический сайт
  4. Система управления веб-содержимым
  5. WordPress
  6. Drupal