logo
Разработка группы и страницы в социальной сети Facebook на основе сайта "Программы двойных дипломов"

2.1.3 Анализ CMS Drupal

Drupal(Друпал) -- система управления сайтом (CMS), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.

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

Функциональные возможности Drupal. Таксономия (taxonomy) -- оригинальная методика присущая Drupal для задания структуры сайта, способ отделить структуру от представления. С помощью таксономии можно определить произвольное число рубрик, в которых будут в дальнейшем помещаться материалы сайта. Эти рубрики могут быть представлены как плоские списки или иерархические структуры произвольной вложенности (как древовидные, когда элемент имеет только одного родителя в иерархии, так и произвольные, когда элемент может иметь сразу нескольких родителей). В результате получаем такую схему: документы (nodes) различных типов (nodetypes) ассоциируются с рубриками (terms), рубрики в свою очередь разбиваются на принадлежность к словарям (vocabularies). Такая схема позволяет выстраивать на сайте несколько независимых структур, ассоциируя одни и те же документы (как бы листья на структурном "дереве" сайта) с различными структурами.

Темы оформления -- содержимое сайта в Drupal отделено от дизайна, сейчас это уже традиционно для любой порядочной CMS. С помощью сменных тем можно очень значительно изменять дизайн не трогая при этом содержимое и структуру сайта. Drupal не привязан к какому-то одному "единственно верному" механизму реализации тем, разработчик сайта может выбирать наиболее удобные ему способы формирования дизайна сайта. Но Drupal предлагает ряд готовых решений в виде движков тем (themeengines), таких как например xtemplate (темы с шаблонами в XML) или phptemplate (темы с шаблонами на PHP). Однако значительных изменений дизайна можно порой добиться манипуляцией стилями. Вид стандартного шаблона можно увидеть на рис. 5

Риc. 5 - Стандартная тема оформления на Drupal

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

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

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

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

Новости в оффлайн (contentsyndication) -- Drupal экспортирует большинство материалов в формате RDF/RSS, Atom и некоторых других, удобных для просмотра в оффлайн с помощью внешних программ, либо для автоматизированной публикации на других сайтах.

Сбор новостей -- новости предоставляемые в RDF/RSS с других сайтов могут собираться Drupal и отображаться на сайте.

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

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