Сравнение Drupal, Joomla и WordPress

Drupal, Joomla и WordPress — системы управления, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат. Мы решили сравнить эти системы между собой и рассказать об этом доступным языком. Мы выбрали наиболее важные аспекты, которые скорее всего заинтересуют рядового пользователя.

В качестве «ответчика» за Drupal выступает Дмитрий Сергеев, Joomla — Дмитрий aka Dead Krolik и WordPress — Максим. Системы расположены в алфавитном порядке, так что не ищите подвоха.

Версии/безопасность

Drupal

Сейчас к выходу готовится 6-я версия, код которой уже достаточно давно заморожен. Текущая 5-я версия по сравнению с 4.7 выглядит хорошим эволюционным этапом.

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

Joomla

Ситуация на данный момент такова — все поклонники Joomla находятся в ожидании версии 1.5. А ветка 1.0.х претерпевает лишь косметические изменения, в основном улучшающие безопасность. Так что с наличием новых версий у Joomla «полный порядок». Безопасность тоже на уровне, версию 1.0.13 можно смело считать очень-очень стабильной и безопасной.

Что же касается безопасности сторонних расширений, то тут все не так гладко, что вообще-то повторяет ситуацию в целом в языке PHP, как популярном среди новичков и людей не знающих ничего о том, как ломаются сайты. 90% софта глючны, а платные программисты готовы работать за еду. Действительно сильных расширений мало, но они есть, например OpenSEF или MosetsTREE.

WordPress

Хотя официально и заявлено, что версии WordPress будут выходить по графику, на самом деле этого не происходит. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпускают обновление, поэтому график версий сбивается. Существуют две линейки WordPress: 2.0.* и 2.1+. Первая (текущая 2.0.12) все еще поддерживается и к ней выпускаются обновления безопасности. Но новые возможности появляются только в линейке 2.1+ (текущая 2.2.2). Разделение произошло после того, как было решено отказаться от поддержки MySQL<4.0. За счет оптимизации запросов, скорость работы новых версий выше. Также сыграло свою роль и то, что в WordPress'е активно стал использоваться AJAX, которому требуется UTF-8. Все это привело к определенным проблемам совместимости, но, на мой взгляд, оно того стоило.

Пример сайта на Drupal
Пример сайта на Drupal

Русская документация

Drupal

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

Joomla

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

WordPress

WordPress обладает очень большой документацией (к.н. Codex/Кодекс), но к сожалению она только на английском языке. Хотя, справедливости ради стоит отметить, что составлена она грамотно и практически не требует особого знания языка. Документация построена таким образом, что позволяет довольно быстро найти нужный ответ. Практически каждая статья имеет несколько примеров, а также ссылки на смежные вопросы.

Пример сайта на Joomla
Пример сайта на Joomla

Русское комьюнити/поддержка

Drupal

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

Joomla

Если коротко, то существует две различных «тусовки», ведущие свои форумы и сайты поддержки. Попытка объединения была, но так ничего и не получилось. В принципе, наличие двух сборок и русификаций на данный момент всех устраивает (читай «все не плохо устроились»). Ближе к версии 1.5 вопрос будет подниматься все чаще, ибо порталовцы более официальная команда перевода, нежели joom.ru. С другой стороны наличие конкуренции нисколько не вредит сообществу, а наоборот даже подталкивает команды работать все лучше и лучше.

WordPress

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

Настройка ссылок в админ-панели WordPress
Настройка ссылок в админ-панели WordPress

Борьба со спамом

Drupal

Akismet — раз, графическая или математическая каптча на выбор — два, анализатор поведения клиентов с отсеиванием ботов — три. Еще можно задавать ограничение на количество ссылок в одном сообщении, контролировать флуд, банить ip и вести «черный список» рекламируемых сайтов, а также фильтровать сообщения по подстроке.

Joomla

Борьба со спамом в интернете на данный момент ведется только в одном месте — комментарии к публикациям. Компонентов комментариев достаточно много, и о таковых, без поддержки captcha я не слышал (разве что очень древние и не используемые на данный момент). На этом собственно борьба со спамом заканчивается. Вкусности вроде SpamKarma насколько я знаю, в сторонних компонентах не реализованы.

WordPress

Стандартно в WordPress входит плагин Akismet, который достаточно эффективно борется с этим злом. Кроме этого можно создать черный список и фильтры из слов. С их помощью можно просто заблокировать любой комментарий, который содержит запрещенное слово или отправить его на модерацию. Наибольшую же эффективность в борьбе со спамом можно добиться с помощью т.н. капчи — картинки с набором символов. В этом случае ставится полный заслон от автоматических спам-роботов. Установка большинства плагинов антиспама очень проста, зачатую достаточно только его активировать в админ-панели (например, популярная SpamKarma). С помощью специального плагина есть возможность модерировать спам-комментарии. Причем доступны как обычные комментарии, так и пинги и трекбаки. В целом же плагинов для антиспама множество (я насчитал больше семидесяти).

Внешний вид админ-панели Joomla
Внешний вид админ-панели Joomla

Интеграция с форумом

Drupal

Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет — на форуме drupal.org сейчас более 320 000 сообщений.

Есть модераторы, группы пользователей с разными правами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума — единая база пользователей, которую используют остальные части сайта.

Насколько я знаю, есть возможность интеграции с PHPBB.

Joomla

Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вариантом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций — они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.

WordPress

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

Пример настройки блоков на Drupal
Пример настройки блоков на Drupal

Визуальный редактор

Drupal

В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраиваются. Оба являются мощными средствами. В TinyMCE, например, можно работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки. Еще TinyMCE может «чистить» скопированные из Ворда тексты от избыточных тегов.

Joomla

Таковых под нее множество: в основном это портированные и самые распространенные редакторы. Однако самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), способный составить очень хорошую альтернативу платному WysiwygPro.

WordPress

Стандартно в WordPress'е используется немного урезанный TinyMCE и, рядом же — простой текстовый редактор (переключение между ними «на лету»). При желании можно установить и полную версию TinyMCE, тогда будет доступно три панели кнопок со всем возможностями. Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д. Если TinyMCE не устраивает, то можно установить вместо него другой редактор, например FCKMonkey. Но в целом, выбор редактора дело вкуса. В профиле пользователя можно вообще отключить использование визуального редактора.

Расширенный визуальный редактор WordPress
Расширенный визуальный редактор WordPress

Работа с картинками

Drupal

В базовом пакете вставка картинок не предусмотрена. Решить эту проблему можно несколькими путями. Есть вариант с добавлением картинке в стиле «Прикрепить файл к посту». Альтернатива — установка WYSIWYG-редактора TinyMCE и медиаменеджера IMCE сверху. Поддерживается изменение размеров картинки при загрузке и генерация тамбнейлов. Я бы не назвал работу с изображениями сильной стороной Drupal: слишком много кликов приходится делать.

Joomla

Самой сильной стороной ветки 1.0.х является mosimage, который (при помощи пары-тройки дополнительных мамботов ©) превращается в такую конфетку, что слюнки текут. Картинки можно вставлять в редакторах, и в медиаменеджере — как никак встроенное и вполне себе удобное средство для работы с изображениями и файлами вообще.

WordPress

В WordPress'е вполне удобно можно добавлять картинки в редактор. При загрузке файла можно сразу указать его название, подпись. Автоматически будет сделана миниатюра. То есть расчет на то, чтобы с этой задачей справился неопытный пользователь. Если же воспользоваться отдельным плагином, то можно дополнительно указать размеры картинки, миниатюры и прочие параметры. После добавления картинки в редактор, можно изменить различные параметры (стили, размеры, бордюры, отступы и т.д.). Хотя это уже возможности самого визуального редактора.

Настрока кнопок визуального редактора TinyMCE в Drupal
Настрока кнопок визуального редактора TinyMCE в Drupal

Шаблоны оформления

Drupal

Движок шаблонов — сильная сторона Drupal. Этот компонент добротно спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист. Вообще Drupal предоставляет целый букет возможностей по управлению темами: можно даже как в ЖЖ настраивать цвета разных элементов прямо из админки. Впрочем, эти изыски на любителя.

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

Joomla

Joomla ветки 1.0.х не поддерживает шаблоны. Конечно, в ней есть общий и большой шаблон, позволяющий на PHP создавать вполне замысловатые структуры общей структуры сайта и расположения модулей, но вот шаблонизации отдельных элементов нет, и все ограничивается примением CSS (кстати, очень система очень гибкая, взять тот же «префикс класса модуля» и хорошо задокументирована) и ковырянием в компонентах. Однако для статей уже давно существует ContentTemplater, позволяющий создавать шаблоны оформления для статей и очень неплохо управлять их внешним видом.

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

WordPress

Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.

Расширенная функциональность (плагины)

Drupal

Сейчас в официальном репозитории хранится под тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Еще отмечу модули Views и CCK, которые дают Друпалу полное право именоваться CMF, а не CMS. CCK (Content Construction Kit), к примеру, позволяет при помощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.

Joomla

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

В этом я думаю Joomla впереди всех трех других систем, ибо одних только видов расширений существует три штуки. Да и конкурентов у официального сайта расширений среди других систем я думаю нет (extensions.joomla.org) и быть не может. Одна только циферка (1915) наверху с количеством расширений в архиве заставляет задуматься.

WordPress

WordPress можно расширить за счет плагинов — это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Создать плагин не очень сложно, все зависит от уровня знания PHP. Подключение к WordPress'у совсем просто: плагин копируется в специальный каталог и активируется в админ-панели. Некоторые плагины можно настраивать, некоторые нужно прописывать в шаблоне, а некоторые работают полностью автоматически.

Плагинов для WordPress написано несколько тысяч (только на одном wp-plugins.net — 2568, но думаю, что целом цифру можно удвоить), поэтому можно найти плагин практически под любые нужды. Исключение составляют плагины, которые требуют значительной переделки шаблона. С ними обычно приходится повозиться.

Виджеты/блоки

Drupal

В Drupal это называется «блоки». Их можно располагать в разных областях страниц в зависимости от возможностей шаблона. В каждой области блоки можно сортировать для управления порядком вывода. Изначально областей пять — шапка, центральная, левая и правая колонки, подвал. Блоки можно показывать не на всех страницах.

Joomla

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

WordPress

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

Пример настройки виджета WordPress
Пример настройки виджета WordPress

Поддержка авторов (один блог) и многопользовательские блоги

Drupal

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

Joomla

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

WordPress

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

Для управления авторами используется система ролей. С помощью специального плагина можно легко (визуально) отредактировать любую роль или разрешить/запретить выполнять какие-либо действия отдельному автору.

Для многопользовательских блогов существует отдельная версия: WordPress Multi User. Требования и возможности у неё практически такие же как и у обычного WordPress'а, хотя есть некоторые отличия. На WordPressMU работает один из крупнейших блог-сервисов WordPress.com, на котором зарегистрировано почти 1,3 миллиона блогов.

Современные «фишки»: трекбаки, пинги, XML-RPC, RSS

Drupal

Друпал популярен в мире, поэтому все «модные» фишки там быстро реализуются. В базовом пакете есть возможность ведения блога посредствам блогового клиента. Есть модуль, пингующий специальные каталоги Drupal-сайтов.

Joomla

Joomla это CMS, и говорить о внедрении таких вещей можно только на уровне сторонних компонентов. Видимо для Drupal'а и WordPress'а этот вопрос сильно актуален, ибо изначально это все-таки блоговые движки, а не CMS, и никуда от этого не деться. А в Joomla надо все рассматривать на уровне каких-то компонентов, например того же платного MyBlog. Если реализуют — здорово, нет — позиции Joomla от этого ни сколько не пошатнутся.

WordPress

Трекбаки, пинги поддерживаются уже давно. Причем для их использования не нужно вообще никаких дополнительных действий: все работает на уровне «движка». Что касается XML-RPC, то WordPress поддерживает сразу несколько API, поэтому добавлять/редактировать записи в WordPress можно с многих программ блог-клиентов или он-лайн, например с помощью Google-Docs.

WordPress полностью поддерживает RSS и Atom. Можно подписаться на последние записи блога, определенной рубрики, комментарии или все комментарии. С помощью отдельного плагина можно сделать автоматическую переадресацию RSS-ленты блога на feedburner.com.

Кодировки

Drupal

Drupal работает на UTF-8. Каких-то забытых строковых функций, не работающих с UTF-8 я не замечал. Некоторые хостеры по старинке отдают страницы в cp1251, но это легко чиниться. Проблемы с MySQL тоже обычно решаются одной строчкой кода. Мне нравится UTF-8.

Joomla

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

С UTF-8 все сложнее, об этом достаточно написано, скажу лишь, что полная поддержка ожидается (собственно она уже есть) в версии 1.5. Сейчас можно говорить лишь об однобайтных кодировках и попытках сделать utf-сайты на непригодном для этого движке (хотя порой и весьма успешных). С аяксом все тоже сложно, ибо компоненты в основном делают буржуи, которые знать не знают о наших заморочках. А компонент этих столько, что рук не хватает ломать голову и мудрить что-то с iconv'ом.

WordPress

В самом WordPress'е есть возможность установить любую кодировку. Главное, чтобы кодировка базы данных совпадала с кодировкой блога. Правда, начиная с версии 2.1 WordPress должен работать в UTF-8. Это напрямую связано с использованием AJAX. Поэтому для русскоязычных пользователей основная проблема состоит только в том, что на серверах часто стоит CP1251. Поэтому я выпустил свою сборку WordPress (начиная с 2.2), которая позволяет использовать раздельную кодировку блога и базы данных. Это позволило многим без особых проблем перейти на последние версии WordPress. Сейчас можно довольно уверенно сказать, что особых проблем с кодировками в WordPress'е нет.

Комментирование

Drupal

Комментарии в блогах могут быть и «плоскими» («flat») и древовидными («treaded»). Всё это находится в базовом пакете. Извещения по email делаются внешним модулем.

Joomla

Как уже было сказано ранее — компонентов комментариев много. Можно использовать любой на выбор. Стабильных — раз-два и обчелся, но очень скоро выйдет мега крутая штукенция под названием jComments от русского разработчика, которая все поставит на свои места (мы в это тайно верим — надеюсь что не зря: первые бета версии были очень «вкусные»).

WordPress

Для любой записи можно разрешить или запретить комментирование. Отдельно можно разрешить прием пингов/трекбаков, а также автоматический пинг по адресам, указаным в тексте записи. При помощи отдельных плагинов можно сделать древовидные комментарии, а также разбить отображение комментариев по страницам. Можно добавить аватарки или favicon. Текстовый редактор комментария можно снабдить кнопками форматирования и смайлами. Есть также плагин (работает на AJAX), который позволяет в течение некоторого времени редактировать посетителю свой комментарий.

Экспорт/импорт данных

Drupal

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

Joomla

Я так понимаю, что этот вопрос очень актуален для блоговых движков. Еще раз хочу упомянуть о том, что Joomla — это не блог, а CMS, а потому вопросы экспорта заметок в какой-то формат для нее не важны. Если компонент платный, то за N зеленых американских трупперов легко можно заказать себе импорт записей из старого блога в новый в каком угодно формате.

WordPress

WordPress позволяет экспортировать записи и комментарии блога в XML-файл. Можно экспортировать записи отдельного автора. Для импорта записей в WordPress можно воспользоваться 9 способами. Это основные блоговские «движки» (например: ЖЖ, Blogger, Textpattern), а также в RSS и свой XML-формат.

Рекомендуем почитать:
Поля в CSS
Самоучитель HTML
Основные стратегии повышения эффективности контекстной рекламы


Оставить комментарий: