...
...

CMS Drupal и ее особенности

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

Проект Drupal


Разработчик: Dries Buytaert & Co.
Сайты: www.drupal.org, www.drupal.ru, www.drupal5.ru, www.drupal.htdogs.ru
Требования: PHP 4.3.3 — 5, MySQL; PostgreSQL, IIS (только частичная поддержка)

Drupal заявил о себе еще в 2000 году и на сегодняшний день является довольно известным и востребованным web-проектом. Сам я узнал о нем году в 2003, но для меня это был лишь факт существования. Опробовать же CMS в действии я решился только в 2006, когда на русский сайт поддержки движка Drupal.ru меня вывел Google. Раздел "Возможности" портала, в свою очередь, порадовал списком различных возможностей. Ключевые слова — функциональность, эргономика, поддержка и масштабируемость. В общем, после недолгих раздумий я сделал вывод, что архитектура Drupal'а уникальна, и движок обладает рядом возможностей, которых нет ни в одном другом. Стоит проверить! На заглавной странице сайта расположена табличка со ссылками на дистрибутивы Drupal'а. Выберем версию 4.7.5 (но не 5.0) и заодно — "Скачать русский перевод". Русификатор именуется ru-4.7 и совместим с любым Drupal'ом ветки 4.7.x. Честно говоря, удивляет размер архива пусть и не текущей версии CMS — 400 Кб (после распаковки — менее 2 Мб), особенно после ознакомления со списком возможностей.

Установка

Заранее предупреждаю: в 4.7.x и более ранних версиях Drupal не содержит install-мастера. Но это не значит, что установка сложная — наоборот. Есть только несколько моментов, на которые вам необходимо особо обратить внимание. Конфигурационный файл Drupal'а расположен по адресу: Drupal\sites\default\settings.php. Как вы думаете, почему вложенная папка называется "default"? Да потому, что движок поддерживает несколько конфигураций. И если вы захотите организовать целую, так сказать, Drupal-powered систему сайтов с различными (суб)доменами — пожалуйста! Подробности подобной мультиподдержки см. в INSTALL.txt (коротко) или вот здесь: www.razgonka.ru/multisiting (подробно на русском языке). Касательно простой установки: нам нужно найти строку

$db_url = 'mysql://username:password@localhost/databasename';

конфига и отредактировать в соответствии с параметрами нашей базы данных (БД). Если установка производится на известном бесплатном хостинге www.ho.com.ua, раскомментируйте строку

# $base_url = ' http://www.example.com';

и введите домашний адрес сайта вместо примера. Это действительно важный нюанс, без которого движок на Ho.com.ua нормально не заработает. После конфигурирования содержимое дистрибутива нужно переместить на сервер. Ну, а напоследок — импорт таблиц в БД. В папке database имеются файлы с расширениями .mysql и .pgsql (копировать которые на сервер, кстати, необязательно). Это дампы таблиц для MySQL и PostgreSQL соответственно. Импорт производится любым доступным методом: через PhpMyAdmin, Site Keeper Dumper Lite (www.sypex.net), SSH, консоль и т.п. Теперь после указанных действий зайдите на сайт и создайте первую учетную запись ("Create first account"). Вот вы и стали администратором собственного ресурса (при успешной установке, конечно). Информация о вашем аккаунте придет на E-mail. И, внимание: если в процессе регистрации появится сообщение

warning: mail() [function.mail]: Failed to connect to mailserver at ...

значит, функция SMTP на сервере отключена. Такая ситуация характерна для большинства бесплатных сервисов. Что здесь можно порекомендовать? Меняйте хостера, иначе рассылка писем пользователям вашего сайта окажется невозможной. Я устанавливал Drupal 4.7.5 на Ho.com.ua и Elemelot.com (бесплатные тарифы хостинга). С проблемами не сталкивался.

Внутри

По умолчанию интерфейс, естественно, англоязычный. Заходим в раздел Administer -> modules и подключаем модуль Locale, отвечающий за мультиязычную поддержку. После этого должен появиться новый раздел — localization. Вначале добавим новый язык (вкладка add language), затем импортируем в него информацию из файла локализации ru.po. Некоторое время придется подождать (понятно ведь: такой большой текстовый массив обрабатывается, сравниваются текущие/импортируемые строки текста). Что ж, можем приступать к изучению CMS. Особенности Drupal'а очень четко выявляются в административном разделе, в котором мы сейчас и находимся.

Главная страница Управления отображает все события, происходящие на сайте. Это значит, что любое действие, произведенное вами или без вашего участия, будет записано в Журнал. Например, если зарегистрируется новый пользователь, запись отобразится напротив типа Пользователь. Появится комментарий, статья — смотрим тип Материалы. Есть еще несколько типов, каждый из которых можно отображать отдельно (с помощью фильтра). Вот такая полезная и незаменимая вещь. Далее Управление делится на разделы. Через раздел Блоки осуществляется изменение структуры сайта. Как обычно заведено в CMS, блок можно разместить в шапке (header), подвале (footer), левом/правом полях, непосредственно в центре или просто убрать. На очередность блоков влияет вес: более легкие "всплывают" вверх или передвигаются вперед, тяжелые — соответственно, "оседают". Все изменения вы увидите в админ-панели. Весьма серьезный раздел Доступ. Он содержит три вкладки. В первой определяются полномочия зарегистрированных (authenticated) и незарегистрированных (anonymous) пользователей. Отметка напротив определенной возможности модуля означает разрешение. Ролей в зависимости от масштаба проекта может быть и больше — например: модераторы, редакторы, авторы (Роли -> Добавить роль). А как установите новый модуль, появятся новые опции. Третья вкладка — Правила доступа — позволяет вводить запрет на логин, адрес e-mail или хост, с которого осуществляется доступ к сайту. Иными словами — опции бана.

Мы подошли к Категориям. Вот здесь выявляется, я считаю, главная характерная черта Drupal'а, а именно Таксономия. Цитата: "Таксономия (taxonomy) — оригинальная концепция для задания структуры сайта, отделяющая структуру от представления. С помощью таксономии можно определить произвольное число рубрик, в которых будут в дальнейшем помещаться материалы сайта. Эти рубрики могут быть представлены как плоские списки или иерархические структуры произвольной вложенности (как древовидные, когда элемент имеет только одного родителя в иерархии, так и произвольные, когда элемент может иметь сразу нескольких родителей)..." (Drupal.ru). По-другому, таксономия — это категоризация контента, под которым подразумевается любая текстовая информация, опубликованная на сайте: сообщение, комментарий, голосование, статья, страница и даже изображение. В Drupal в качестве модуля встроен собственный форум, поэтому форумные сообщения пользователей также являются нодами. А на практике это выглядит так. В разделе Категории создаем словарь, т.е. набор разделов (вторая вкладка), отметив нужные типы нодов и вид иерархии, и добавляем в него термины — собственно разделы, по которым будет систематизироваться материал (закладка Add terms). Например, я создаю словарь "Веб-мастеру". В нем два термина — "Интернет" и "CMS" — с некоторыми синонимами. Готово. Теперь при публикации любой информации у меня есть выбор, в какой словарь (или несколько словарей сразу) и по какому термину(-ам) ее распределять. Заметьте: очень удобное решение, поскольку в дальнейшем будет возможность продуманно упорядочить весь материал по определенной тематике.

Понятно, что раздел Комментарии предназначен для управления комментариями. Опубликовать их или распубликовать — в полномочиях админа. В настройках можно поменять вид отображения (свернутый/развернутый, линейный/иерархический), а также некоторые параметры отправки комментария. Материалы — раздел, непосредственно связанный с контентом сайта. Здесь собраны все материалы, опубликованные или ожидающие модерации. Стоит сказать, что Drupal различает три формата ввода текста:

Filtered HTML — HTML-код с ограниченным использованием тегов;
Full HTML — код без ограничений;
PHP code — использование и выполнение PHP-сценариев.

Первый формат удобен при ручном наборе текста (когда использовать все возможные теги нет смысла и времени). Если же вы переносите код из своего любимого Dreamweaver'а, выбирайте Full HTML — иначе формула "что вижу, то получаю" не сработает. PHP тоже иногда бывает полезен, в частности, для импорта текста из внешних файлов.

Модули. Ничто не расширяет возможности так, как они. Да и сам Drupal суть ядро и связка модулей различной степени важности. Block, Filter, Node, System, User и Watchdog — неотъемлемо важные, прочие поддаются выборочной настройке. Среди прочих я подразумеваю и те, которые можно скачать с официального сайта поддержки движка. Список внушительный: всяческие чаты, галереи, менеджеры файлов и просто полезные расширения. К детальному описанию модулей переходить не стану — назову лишь некоторые из них, на мой взгляд, жизненно необходимые:

DBA — работа с таблицами БД средствами Drupal'а. Стандартные операции check, optimize, drop, backup, empty, выполнение SQL-запросов. Этого вполне достаточно, чтобы забыть о существовании PhpMyAdmin'а:).
Dbcron — регулярное выполнение SQL-заданий посредством Cron'а.
Backup — будет подспорьем перечисленным расширениям. Выполняет резервное копирование не только БД, но и системных файлов движка.
TinyMCE, FCKeditor, Htmlarea (Xinha) — визуальные редакторы. К TinyMCE не поленитесь скачать TinyMCE Compressor PHP, который уменьшает время загрузки WYSIWYG.
SMTP — настройка SMTP-отправки писем через Drupal.
DrupalVB, Phpbb2drupal — интеграция и импорт данных вроде сообщений, аккаунтов с известных форумов.

Установка модулей проста. Вначале копируем папку с распакованными файлами в директорию Modules и подключаем в разделе с таким же названием в админ-панели. Если к модулю прилагается файл с расширением *.mysql, предполагается, что SQL-запрос вы выполните самостоятельно.

Меню — изменение пунктов меню. Почти любой из них можно включить/отключить, изменить название и путь. Вкладка Список раздела свидетельствует о том, что общее меню в Drupal'e представляет собой древовидную структуру, где основными элементами являются родительские пункты. Для того, чтобы вынести ссылку на боковую панель, и она была видимой для пользователей, прикрепите ее к Навигации. Primary links тоже относятся к меню, но отображаются в шапке страницы (да, именно в том месте, где назойливая надпись "edit primary links":). И не могу не упомянуть интересную возможность движка, реализованную модулем Path. Дело в том, что адресные пути Drupal'а не очень... лаконичные, непонятные, что ли. Данный модуль исправит ситуацию. После его активации в Настройках появится новый подраздел Псевдонимы (aliases), где любой ссылке можно присвоить альтернативную. Действительно, разумная возможность, учитывая особенности таксономии. Посудите сами. Каждому термину CMS присваивает уникальный идентификатор: 1, 2, 3 и т.д. Узнать его можно в тех же Категориях, щелкнув по интересующей рубрике. Никто не мешает вам объединить несколько тематических разделов под одним названием, вынесенным в меню. На языке таксономии адрес будет выглядеть как "taxonomy/term/m+n", где m и n — номера терминов. Именно такой ссылке желательно присвоить псевдоним. Темы определяют визуальное оформление сайта. Подскажу вам адрес — Themes.drupal.org — больше, чем здесь, тем вы не найдете. Скачивайте и распаковывайте выбранные в одноименную папку Drupal'а. Характерная черта Drupal'a состоит в том, что он поддерживает не один, а несколько шаблонизаторов (theme engines). Наиболее популярны Phptemplate и Smarty, но иногда используется Xtemplate. Поэтому, если в разделе тем вы чего-то "не досчитаетесь", проверьте, какие требования у темы: вероятно, отсутствует нужный шаблонизатор. С Настройками, полагаю, все ясно, однако обращу ваше внимание на два момента:

1. "Чистые" ссылки ("clean" URLs, ЧПУ). Включаются они после прохождения своеобразного теста. Если модуль Apache mod_rewrite функционирует, а в директории Drupal'а присутствует .htaccess с правильными настройками, данный тест завершится удачно и появится возможность выбора.
2. Задания планировщика. В ОС Windows Cron не работает (по причине отсутствия:) и запускается только на UNIX-сервере через скрипт cron.php. В принципе, можно обойтись и без планировщика — достаточно регулярно производить backup и оптимизацию таблиц БД. Модули помогут.
Форум. Что он собой представляет и использовать ли его вместо форумных движков? Смотря какая посещаемость на вашем сайте. Для небольших проектов вполне подойдет. Но проблема в том, что в функциональном плане форум довольно-таки примитивный — он даже не имеет средств гибкой модерации и настройки вообще. Скорее всего, единственный его плюс — хорошая интеграция с движком и таксономия. Если вы поставите, например, форум PhpBB и свяжете его с сайтом посредством модуля Phpbb2drupal, это будет более выигрышное решение, нежели использование модульного форума.

Что дальше? А дальше Drupal 5

Сегодняшний обзор по нескольким причинам не затронул пятую версии Drupal'а. Эта тема могла бы стать отдельной статьей, поскольку новейший Drupal подвергся значительным изменениям по сравнению с предшественниками ветки 4.7.x. Дабы заинтересовать вас, приведу список наиболее существенных: — Полностью переработан интерфейс администраторского раздела (теперь он стал более удобным в навигации), 2 варианта навигации: по задачам и модулям.

— Добавлен мастер установки движка, вполне совершенный и удобный.
— Улучшена производительность и быстродействие благодаря новому механизму обработки сессий, разделению прав, препроцессору CSS и многому другому.
— Переработаны блоки, модули и средства их администрирования.
— Новая стандартная тема Garland с возможностью смены цветовой схемы на лету.
— Изменения в типографике.

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

Заключение

Не знаю, как вам, но мне движок понравился. По крайней мере, после каскада самых различных CMS нашлось нечто более компактное, гибкое и удобное в обращении. А в придачу еще и бесплатное. Так что Drupal оправдывает свою характеристику, подробно изложенную на сайте поддержки. Как бы шаблонно это ни звучало, Drupal подходит для создания сайта любой сложности: от статичных новостных сайтов до обширных блог-порталов а ля Livejournal.com. Выбираете необходимые модули, настраиваете их — и готово. Пятый Drupal, кстати, позаботится об этом за вас (я имею в виду готовые профили мастера установки). Да. Я не упомянул о безопасности Drupal'а. Если вас беспокоит эта тема, следите за последними новостями об уязвимостях API и модулей, по крайней мере, на форуме www.drupal.ru/forum/security. Ресурс обновляется регулярно. К сожалению. И напоследок я попытался отметить как положительные, так и отрицательные стороны движка по пунктам:

[+] Бесплатность.
[+] Хорошая поддержка (модули, темы).
[+] Таксономия.
[+] Быстродействие.
[+] Совместимость с альтернативными СУБД.

[-] Отсутствие мастера установки в Drupal до 5-й версии.
[-] Безопасность.

Стоит посетить:
www.ibm.com/developerworks/ru/library/i-osource5/index.html — статья "Начало работы с Drupal", очень подробный анализ CMS.
www.cmsmatrix.org/matrix — выборочное сравнение всевозможных CMS по многим аспектам.

Илья Муравьев, ilyuha.org.ua

© Компьютерная газета

полезные ссылки
Ремонт ноутбуков, компьютеров, мониторов