DataLife Engine > Статьи о CMS > Drupal

Drupal


1 января 2008. Разместил: ProGrammist
Сайт: drupal.org, drupal.ru
Цена: бесплатная
Плюсы: контроль над шаблонами; архитектура системы; API; таксономия; сообщество
Минусы: нет системы установки; трудность работы без подготовки; требуется знание английского

Мое знакомство с Drupal было непростым: всю его прелесть я понял только с третьего раза (т. е. два раза его смотрел, а увидел только на третий). Кроме того, Drupal — это такая система, которой не подходит простое сравнение с другими CMS по функционалу. Да и не CMS это вовсе, а настоящая CMF с несколькими готовыми решениями «на борту». Именно из-за знакомства с Drupal я отложил изучение Ruby on Rails (и не только я предпочел Drupal — IBM тоже).

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

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

Именно из-за этого новички могут остановиться на другой CMS, ведь чтобы найти нужный модуль с непривычки может потребоваться много времени.

Для программиста работа с Drupal — это как глоток свежего воздуха (в отличие от Joomla, Postnuke и даже Bitrix). Простой и понятный код, мощный API, отличная документация — что еще надо? Сама структура ядра предполагает легкое переопределение большинства функций ядра и модулей (и почти всех, отвечающих за вывод) при помощи «хуков». Писать свои модули очень легко. Всего пара специальных функций в файле filename.module — и ваш модуль готов.

Можно подумать, что Drupal предназначен в первую очередь для программистов. Но это не значит, что если вы дизайнер, то у вас не получится сделать оригинальный и привлекательный сайт. Если вы не знаете PHP, то можно поставить другой шаблонный движок (например, Xtemplate) и работать с ним. Писать своих модулей тоже, скорее всего не придется. Достаточно пройти на сайт и скачать нужные (а система инсталляции в новой версии 7.4 заметно облегчит процесс установки новых модулей).

Некоторой проблемой может стать незнание английского языка, так как 95% материала требуется брать с сайта drupal.org. Русское сообщество пока не слишком активно, что может затруднить обучение.

Какие же еще преимущества Drupal имеет перед другими системами? В первую очередь — необычный подход к структуре и содержимому. В большинстве CMS вы сначала определяете структуру сайта через меню, а затем «подвязываете» документы к разделам. В Drupal, первично содержимое. Вы создаете документы, а затем связываете их при помощи уникального механизма таксономии.

Из википедии:

…таксономией является древообразная структура классификаций определенного набора объектов…

Или, проще говоря, иерархия. Только иерархия эта может иметь довольно разветвленный вид (множественные родители, синонимы).

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

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

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

Drupal имеет встроенную систему внутреннего кеширования, которая обеспечивает стабильную работу даже при перегрузках (slashdot- и digg-эффекты). Кроме того, часть функционала можно автоматически отключать при наплыве посетителей. Сильно посещаемые сайты на Drupal лично я не делал, но примеры drupal.org и theonion.com должны быть показательны.

Вообще, как я уже говорил, сравнивать Drupal с другими тяжело. Лучше скачать и попробовать с ним поработать самостоятельно.


Услуги срочного ремонта. Вашему вниманию профессиональный ремонт квартир срочно и без проблем! Мы сделаем ремонт в Вашей квартире в кратчайшие сроки.