Отличия CMS Joomla и Drupal. Joomla сравнение drupal
Сравнение Drupal, Joomla и WordPress. Часть 3.
Уф, третья, заключительная часть сравнения.
Расширенная функциональность (плагины)
Drupal
Сейчас в официальном репозитории хранится под тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Еще отмечу модули Views и CCK, которые дают Друпалу полное право именоваться CMF, а не CMS. CCK (Content Construction Kit), к примеру, позволяет при помощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.
Joomla
В этом я думаю Joomla впереди всех трех других систем, ибо одних только видов расширений существует три штуки. Да и конкурентов у официального сайта расширений среди других систем я думаю нет (extensions.joomla.org) и быть не может. Одна только циферка (1915) наверху с количеством расширений в архиве заставляет задуматься.
Самой сильной стороной Joomla является, я считаю, система расширений. Мало того, что их существует несколько видов, еще есть специальная система их установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя выполнить автоматически).
WordPress
WordPress можно расширить за счет плагинов — это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Создать плагин не очень сложно, все зависит от уровня знания PHP. Подключение к WordPress'у совсем просто: плагин копируется в специальный каталог и активируется в админ-панели. Некоторые плагины можно настраивать, некоторые нужно прописывать в шаблоне, а некоторые работают полностью автоматически.
Плагинов для WordPress написано несколько тысяч (только на одном wp-plugins.net — 2568, но думаю, что целом цифру можно удвоить), поэтому можно найти плагин практически под любые нужды. Исключение составляют плагины, которые требуют значительной переделки шаблона. С ними обычно приходится повозиться.
Виджеты/блоки
Drupal
В Drupal это называется «блоки». Их можно располагать в разных областях страниц в зависимости от возможностей шаблона. В каждой области блоки можно сортировать для управления порядком вывода. Изначально областей пять — шапка, центральная, левая и правая колонки, подвал. Блоки можно показывать не на всех страницах.
Joomla
Так и не понял что это такое. Ну, подумаешь, блоки перемещаются. При желании на Joomla тоже можно такое сделать. Только вопрос — в чем их коренной замысел. Возможно, в Joomla это называется модули, пусть и не перетаскивающиеся, зато очень удобно располагаемые по всему шаблону в любом виде.
WordPress
Полноценная поддержка виджетов появилась только в версии 2.2. До этого нужно было устанавливать отдельный плагин. То что виджеты очень удобны, многие уже успели убедиться. Для пользователя теперь нет надобности что-либо менять в своем шаблоне: управление чисто визуальное, достаточно отметить нужные опции, расположить блоки как нужно и изменения сразу же вступают в силу. Внутренняя реализация виджетов такова, что с их можно использовать для вывода какого-либо плагина или своей функции.
Пример настройки виджета 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-формат.
Зима наступила, а я, как дурак, вместо того, чтобы пойти на ледовый каток, решил сходить поиграть в теннис). Понравилось, но ракетки для тенниса напрокат - это дорого, легче их купить). Наткнулся тут на ракетку, которой играли пещерные люди) Но если серьезно, то дешевых ракеток очень мало. Только на yonex нашел приличное что-то. В общем, летом пойду покупать коньки для катка)
advices-blog.blogspot.com
Сравнение Drupal, Joomla и WordPress. Часть 2.
Продолжаем обзор трех CMS для сайта.
Интеграция с форумом
Drupal
Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет — на форуме drupal.org сейчас более 320 000 сообщений.
Есть модераторы, группы пользователей с разными правами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума — единая база пользователей, которую используют остальные части сайта.
Насколько я знаю, есть возможность интеграции с PHPBB.
Joomla
Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вариантом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций — они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.
WordPress
Для WordPress'а разработан и рекомендуется форум BBPress (есть и руссификация), который полностью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также существуют плагины, которые позволяют частично интегрировать некоторые популярные форумы в блог. Правда для этого требуются хорошие знания программирования, и при этом, все равно стопроцентной интеграции не получится — все-таки это разные системы.
Пример настройки блоков на Drupal
Визуальный редактор
Drupal
В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраиваются. Оба являются мощными средствами. В TinyMCE, например, можно работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки. Еще TinyMCE может «чистить» скопированные из Ворда тексты от избыточных тегов.
Joomla
Таковых под нее множество: в основном это портированные и самые распространенные редакторы. Однако самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), способный составить очень хорошую альтернативу платному WysiwygPro.
WordPress
Стандартно в WordPress'е используется немного урезанный TinyMCE и, рядом же — простой текстовый редактор (переключение между ними «на лету»). При желании можно установить и полную версию TinyMCE, тогда будет доступно три панели кнопок со всем возможностями. Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д. Если TinyMCE не устраивает, то можно установить вместо него другой редактор, например FCKMonkey. Но в целом, выбор редактора дело вкуса. В профиле пользователя можно вообще отключить использование визуального редактора.
Расширенный визуальный редактор WordPress
Работа с картинками
Drupal
В базовом пакете вставка картинок не предусмотрена. Решить эту проблему можно несколькими путями. Есть вариант с добавлением картинке в стиле «Прикрепить файл к посту». Альтернатива — установка WYSIWYG-редактора TinyMCE и медиаменеджера IMCE сверху. Поддерживается изменение размеров картинки при загрузке и генерация тамбнейлов. Я бы не назвал работу с изображениями сильной стороной Drupal: слишком много кликов приходится делать.
Joomla
В этом Joomla впереди всех трех других систем, ибо одних только типов расширений существует три штуки (компоненты, модули и мамботы). Причем каждый тип расширений позволяет решать свои типы задач, что позволяет добавлять фактически любой новый функционал не залезая в "ядро". Да и конкурентов у официального сайта расширений среди других систем я думаю тоже нет (extensions.joomla.org).
WordPress
В WordPress'е вполне удобно можно добавлять картинки в редактор. При загрузке файла можно сразу указать его название, подпись. Автоматически будет сделана миниатюра. То есть расчет на то, чтобы с этой задачей справился неопытный пользователь. Если же воспользоваться отдельным плагином, то можно дополнительно указать размеры картинки, миниатюры и прочие параметры. После добавления картинки в редактор, можно изменить различные параметры (стили, размеры, бордюры, отступы и т.д.). Хотя это уже возможности самого визуального редактора.
Настрока кнопок визуального редактора TinyMCE в Drupal
Шаблоны оформления
Drupal
Движок шаблонов — сильная сторона Drupal. Этот компонент добротно спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист. Вообще Drupal предоставляет целый букет возможностей по управлению темами: можно даже как в ЖЖ настраивать цвета разных элементов прямо из админки. Впрочем, эти изыски на любителя.
На Drupal есть красивые сайты, однако, приличных общедоступных тем крайне мало. Если задумаете обзавестись сайтом на Drupal, приготовьтесь потратиться на шаблон.
Joomla
Joomla ветки 1.0.х не поддерживает шаблоны. Конечно, в ней есть общий и большой шаблон, позволяющий на PHP создавать вполне замысловатые структуры общей структуры сайта и расположения модулей, но вот шаблонизации отдельных элементов нет, и все ограничивается примением CSS (кстати, очень система очень гибкая, взять тот же «префикс класса модуля» и хорошо задокументирована) и ковырянием в компонентах. Однако для статей уже давно существует ContentTemplater, позволяющий создавать шаблоны оформления для статей и очень неплохо управлять их внешним видом.
Вторым моментом, о котором стоит сказать отдельно является система модулей. Модули объединяются в позиции, которые уже и подгружаются в нужных местах шаблона. Модули можно привязывать к конкретным страницам (включать и выключать отображение) а так же выводить различными способами по ходу страницы. Порой, при помощи манипуляций в шаблоне можно несколькими модулями составить очень красивую главную (или любую другую) страницу, просто выключив компонент работающий там и расположив вместо него модули (например, отображающие новости из разных категорий).
WordPress
Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.
Постовой:Я думал, я хорошо разбираюсь в Интернете, раз умею создавать блоги. Но нашел интересные статьи на onlyblog.ua. В частности, что можно установить Google на рабочий стол. Так удобно! Попробуйте.
Извиняюсь, что три дня не писал до этого, просто вышел новый Fallout 3. Заигрался немного.
advices-blog.blogspot.com
Сравнение CMS Drupal и Joomla. Отличия и особенности
Joomla и Drupal — две ведущие CMS. Уверен, многие рассматривают их как прямых конкурентов. Попробуем разобраться, в чем разница между двумя движками.
Я лучше разбираюсь в Drupal, поэтому попросил прокомментировать мои догадки насчет Joomla Dead Krolik'а. Получилось что-то вроде интервью.
Дима: Кое-кто думает, выбирая CMS, что Joomla и Drupal стоят на одной полке в отделе «Популярные монстры». Когда я попытался сделать на Джумле коллективный блог, понял, что это совсем не так.
Dead Krolik: Joomla не заточена под коллективный блог или что-то еще. По крайней мере в стандартном дистрибутиве. А друпал заточен и изначально поставляется так, что можно нажатием нескольких кнопок сделать коллективный блог. Хотя это реализуемо и в Joomla.
Дима: В базовом варианте Джумла тяжелее Друпала. WYSIWYG-редактор, загрузка картинок, файловый менеджер — в Друпале «из коробки» ничего этого нет. Но что меня удивило в Джумле, так это полное отсутствие комментариев.
Dead Krolik: Да, встроенных комментариев нет. И стабильных сторонних, которые бы устраивали всех, по сути тоже нет. Есть и платные компоненты, и бесплатные, а чтобы с поддержкой русского языка в ajax и нормальной функциональностью — увы.
Дима: Странно, что в базовой поставке самой популярной в мире CMS нет простого решения такой распространенной задачи. На ум приходит только одно объяснение: Joomla заточена под корпоративные сайты, где комментарии обычно не нужны. А Drupal, напротив, позиционируется как движок для комьюнити-сайтов, где без комментариев никуда.
Dead Krolik: Объяснение на самом деле простое — еще со времен мамбы разработчики не стремились включать в дистрибутив совсем уж сторонние компоненты. Может это продиктовано некой идеологией, а может тем, что стандартная поставка имеет весьма большой размер. Кроме того, для Joomla сейчас достаточно много компонентов комментариев, но все они — это переделки из компонентов для мамбы. Старые и мало кем поддерживаются, потому что намного удобнее создать платный и продавать его, получая очень неплохую прибыль.
Дополнение 26 марта 2008 от Алексея Трошина: Комментарии, наконец, появились. Простые, мощные, интегрируемые почти во всё популярное — jcomments.
Дима: В Джумле я заметил архаизмы, вроде верстки дефолтного шаблона таблицами. Откуда это? В Друпале всё очень даже блочно и шаблоны «чистые».
Dead Krolik: Этот шаблон идет еще с Мамбы. И куски PHP среди HTML тоже оттуда. Обещали исправить в версии 1.5, введя шаблонный движок и разделение логики. А эту ветку решили не трогать, мол пусть доживает свое время старушка.
Дима: А как у Джумлы дела с UTF-8? Друпал на UTF-8 работает.
Dead Krolik: В 1.0.x нет и не будет. А в 1.5 есть поддержка. Хотя есть умельцы, которые запускают UTF-8 сайты на Joomla 1.0.x, но не имея поддержки в ядре это мало что значит. Но например тот же TextPattern везде кричит о том, что поддерживает UTF, хотя уникода там нет и в помине, и ситуация ровно такая же как и в Joomla 1.0.x.
Дима: Сейчас экспорт/импорт материалов сайтов набирает обороты, и без UTF-8 тяжело. Плюс трекбеки, разные del.icio.us и co.mments. А для корпоративных сайтов кодировка некритична.
Dead Krolik: Для англоязычных товарищей все равно — поддерживает ли сайт UTF или нет, ибо буковки у них везде одинаковые и a-z легко может стать уникодом, при смене заголовка сервера. И это ни на что не повлияет. А в рунете стандартом давно уже стала cp1251, и локализованная Joomla при соответствующем хаке легко берет, например, новостные ленты в такой кодировке. Хотя согласен — за UTF будущее и самая большая проблема для Joomla-мастеров это многоязычные сайты.
Дима: Друпал в плане выпуска новых версий меня устраивает. Я застал 4.7, сейчас делаю сайты на 5.1, а 6 уже во всю тестируется. При этом, как мне кажется, работа идет в нужном направлении — приводится в порядок то, что есть, и улучшается юзабилити. То есть это не просто релизы для галочки. Кстати, Joomla 1.5 скоро выйдет?
Dead Krolik: Выйдет-то скоро, но все ее преимущества, на данный момент убиваются скоростью ее работы и нагрузкой на сервер. Кстати я могу предположить почему под Joomla мало новых компонент создают, потому что в основном мамбовские доделывают: когда Joomla только появилась, разработчики сразу сказали: «Вы подождите, мы новую CMS пишем. А эта ветка будет только улучшаться». Вот мы и ждем релиза 1.5 уже больше года.
Дима: Похоже, наследие Мамбы Джумлу тяготит? Хотя именно Мамба принесла ей такую популярность.
Dead Krolik: А куда людям еще было деваться? Безысходность :) Хотя ведь есть же Elxis (тоже форк из Mambo), которая и UTF поддерживает и развита намного лучше и переписывается гораздо умнее. Но люди пошли за оффициальными разработчиками, они сказали что будут продолжать, вот люди и стали использовать Joomla.
Дима: Мне кажется, что Joomla более коммерческая, чем Drupal. Может причина в популярности? Насколько я знаю, в Друпале такого явления, как «компоненты за деньги» в массовом виде не наблюдается. И шаблонов тоже не особенно много продается.
Dead Krolik: Считай, что это сильная сторона Джумлы. Кстати, тут тема проскочила, что разработчики коммерческих расширений для Джумлы нарушают GPL. Если делу дадут ход, домик Джумлы пошатнется.
Дима: Резюме. Joomla хороша для корпоративных сайтов и классических порталов. Базовая поставка богата функциональностью. Многие компоненты продаются, что положительно сказывается на их качестве. Drupal же приспособлен под комьюнити-сайты. Есть встроенный форум, комментарии, блоги, модуль для публикации книг. И хотя на обеих CMS можно делать практически любые сайты, в одних случаях системы будут идти разработчикам на встречу, а в других — придется преодолевать множество трудностей.
www.dserg.com
Joomla vs. Drupal: техническое сравнение лучших CMS
Техническое сравнение лучших платформ для сайтов Joomla vs. Drupal, с открытым исходным кодом.
Было несколько статей, в которых сравнивали производительность, но ничего достаточно углубленного, чтобы оценить технические данные и внутреннюю работу PHP фреймворка CMS в деталях. Как разработчик, который работал как с Joomla, так и с Drupal, я решил, что пришло время написать хорошее техническое сравнение между Joomla и Drupal, и положить конец войне между ними.
Прежде чем мы начнем, мы должны прояснить специфическую CMS-терминологию:
- Что в Drupal называется модулями очень похоже на компоненты в Joomla.
- Что в Joomla называется модулями очень похоже на блоки в Drupal.
УДОБСТВО В ИСПОЛЬЗОВАНИИ ПРОТИВ СЛОЖНОСТИ.
Если вы посмотрите в Интернете, большинство аналитиков используют графики, чтобы помочь определить, какая CMS будет наиболее подходящей для различных спецификаций. Wordpress находится на одном конце диапазона, будучи простым в использовании и не подходит для сложных проектов, Joomla находится в середине, а Drupal находится на другом конце диапазона, являющегося самым трудным в использовании и наиболее подходит для сложных проектов. В этой классификации есть доля правды, но их следует рассматривать только на самом общем уровне.
С точки зрения перспективы вебмастера, поддерживать сайт в актуальном состоянии - это довольно точное предположение. Тем не менее, для разработки сайта, это не обязательно так - давайте выясним, почему.
Немного о верхней диаграмме. Joomla проще в установке и настройке, чем Drupal. Кроме того, легче развивать пользовательские функции для Joomla по сравнению с Drupal и Wordpress.
Это утверждение является верным главным образом для высококачественной заказной разработки. Вы можете легко взломать код любой из трех CMS и заставить их делать то, что вы хотите, но это за счет безопасности, ремонтопригодности и надежности.
Точно так же миф, что Drupal является более подходящим для сложных проектов, чем Joomla вызван оценками CMS, с точки зрения вебмастера, а не точки зрения программиста. Это восприятие связано с тем, что Drupal обеспечивает модульный подход для создания пользовательского интерфейса и ввода содержимого. Веб-страницы Drupal создаются с помощью блоков и видов. Это дает вебмастеру максимальную гибкость для создания веб-страниц без необходимости программирования модулей для Drupal. В то же время Joomla предоставляет вебмастерам подобные рабочие инструменты (компоненты и модули), но это не такие мощные инструменты, какие предоставляет Drupal квалифицированному вебмастеру чтобы быстро построить новые сложные веб-страницы.
Тем не менее, создание нового пользовательского функционала - это совсем другая история. В современном мире, где все управляется с помощью программного обеспечения, гибкость в изменении содержимого веб-страницы и модульный пользовательский интерфейс - это недостаточно. Функциональность CMS должна быть достаточно гибкой, чтобы развиваться, удовлетворяя изменяющиеся потребности бизнес-логики сайта.
ТЕХНИЧЕСКИЕ СРАВНЕНИЕ JOOMLA И DRUPAL
Как только программист открывает исходный код Drupal он сталкиваются с кошмаром. Программировать на Drupal не легко, так как он основан на плохо продуманном, процедурном фреймворке, в то время как Joomla основана на хорошо разработанном, объектно-ориентированном MVC фреймворке, который так-же реализует ряд шаблонов проектирования, таких как listener, и т.п.
Даже если вы нанимаете высококвалифицированного, (очень дорогого) Drupal программиста, существует высокая вероятность того, что ваш код будет напоминать спагетти, которые будут вызывать много проблем в будущем, если вы хотите внести дополнительные изменения.
1) База данных
- В Drupal, виды хранятся в базе данных. Это означает, что вы не можете поставить их под контроль версий (например SVN или GIT) и разработчики не могут сотрудничать при развитии видов.
- Каждый новый тип содержимого в Drupal создает пару таблиц базы данных. Это означает, что структура базы данных изменяется с течением времени, если вебмастер создает и изменяет типы контента. Это кошмар для разработчиков, которые хотели бы создать Entity Relationship Diagrams (ERD), при создании веб-приложения. Вы никогда не можете полагаться на ERD потому, что в следующий раз, когда вы посмотрите в базу, количество таблиц и схема базы будет отличаться.
- В Drupal, логи хранятся в базе данных. Все современные системы хранят логи в файлах. Хранение логов в базе данных означает, что к ним очень трудно получить доступ, анализировать и профилировать. Разработчик не может использовать инструменты Linux (такие как sed и т.д.) для обработки и анализа журналов. Процесс идет медленнее и занимает огромное количество дискового пространства (много гигабайт) для хранения баз данных. Это делает базу данных системы необоснованно большой и неэффективной. Для большого сайта с высоким трафиком это делает практически невозможым запросы и анализ логов. Кроме того, он не может поддерживать ротацию и архивирование старых логов. Кто в здравом уме будет хранить логи в базе данных?
2) Паттерны проектирования
Joomla является объектно-ориентированной, а Drupal основан на старом PHP 4 процедурном программировании (темные дни PHP).
Drupal реализует устаревшие паттерны проектирования:
- Procedural
- Hooking
Однако Joomla реализует современные паттерны проектирования, которые используются в лучших фреймворках, таких как Symfony 2, Zend и корпоративных языках программирования, таких как Java (включая Struts и Spring):
- Объектная ориентированность (включая полиморфизм, инкапсуляцию, наследование и т.д.)
- MVC (Model View Controller)
- Event Driven, Event Dispatcher, и Observer
- Singleton
- Factory
Некоторые из паттернов проектирования, реализованных в обоих CMS, таких как DBAL (Database Abstraction Layer) были сделаны лучше в Joomla. DBAL в Joomla почти так же хорош, как ORM (Object-relational mapping). И если вы действительно хотите использовать ORM Joomla, он легко интегрируется с Doctrine.
Реализация этих современных практик связано с непрерывным улучшением фреймворка Joomla и CMS, которые проведены за эти годы, в то время как Drupal стагнирует.
3) Архитектура ядра
Joomla имеет очень чистый API ядра, а Drupal написан на уродливом коде-спагетти. Можно было бы назвать архитектуру Joomla елкой, а архитектуру Drupal бакиболой.
В Joomla у нас есть древовидная иерархия. Ствол является ядром Joomla. Он имеет ветки (API), к которым вы можете прикрепить несколько отростков (компоненты) или листьев (модулей или виджетов). Компонент может быть подключен, таким образом, чтобы интегрироваться с контролем доступа Joomla! (Access Control Levels) и функциями управления контентом. Будучи отростком, он может иметь подкатегории ветви и даже может иметь соединение с другим компонентом. Но в значительной степени, существует минимальный контакт между различными компонентами.
В Drupal, форма является в основном круглой с многочисленными точками по всей поверхности - модулями. При построении расширения, вы можете подключить любой или все из этих модулей. Эта тесная интеграция означает, что все контактирует друг с другом. Эта архитектура гораздо менее элегантна и снижает качество кода любых пользовательских функций. В текущей и долгосрочной перспективе с такого рода структурой обслуживание становится проблемой.
Для реализации Hooking в архитектуре Drupal используется call_user_func () и другие методы динамического вызова функций. Это означает то, что отладка Drupal с использованием современных инструментов отладки - это кошмар.
Кроме того, это означает, что вы не можете использовать клик по методу или свойству для перехода к его объявлению в вашей современной IDE, когда вы программируете. Также, если вы используете PhpStorm или другую современную IDE, инспекция и автоматическое завершение не будут работать, так как они не будут знать тип возвращаемого значения динамически вызываемых функций.
4) Стандарты кодирования
PSR - PHP Specification Request является стандартом кодирования, принятым в большинстве современных корпоративных фреймворках, таких как Symfony 2 и Zend.
Joomla является PSR-0 совместимой и скоро станет PSR-1 совместимой. Drupal не соответствует любому стандарту PSR.
5) Производительность и кэширование
Drupal в среднем составляет 100 запросов к базе данных на странице (для простых страниц). Из-за этого и других проблем с производительностью, связанных с Hooking архитектурой, все должно быть сильно абстрагированно и кэшироваться, что создает дополнительную сложность и требования к аппаратной составляющей ресурсов. Joomla является гораздо более легкой и оптимизированной. Она имеет намного более быстрее ядро. В Joomla рекомендованный лимит памяти составляет 512 МБ, а в Drupal - 2 ГБ.
Большинство тестов согласны, что без кэширования Joomla является более быстрой и менее ресурсоемкой, чем Drupal. Однако некоторые тесты считают Drupal быстрее, когда кэширование включено. Но если кэширование Joomla устанавливается экспертами и настроено она может превзойти Drupal даже когда кэширование включено. Также кэширование в Joomla намного проще и менее ресурсоемко, чем в Drupal, что делает Joomla проще в использовании, обновление, и настройке.
В то время как у вас есть Solr в Drupal, чтобы увеличить производительность для веб-сайтов с большими базами данных и большим количеством пользователей, в Joomla у вас есть Sphinx, который написан на родном C ++ и работает быстрее и проще, чем Solr. Нам просто не нужно устанавливать Sphinx на большинстве веб-сайтов, потому что Joomla быстра и достаточно мощна из коробки и имеет возможность работать с очень большими базами данных под интенсивным трафиком. Однако при необходимости Sphinx может обеспечить огромный прирост производительности на Joomla, делая ее во много раз быстрее, чем Drupal с Solr.
Все вышеперечисленное - это сильные признаки того, что в противоположность распространенному мнению, Joomla намного лучше для разработки более крупных и более сложные сайтов, чем Drupal.
То, что эксперты делают
Одним из многих успешных известных сайтов Joomla является linux.com. Люди, которые работают в linux.com известны своей одержимостью качеством кода и являются лучшими и умнейшими программистами. Независимо от того, сколько правительственных сайтов, сделанных на Drupal вы можете найти, то, что linux.com находится на Joomla перевешивает их всех.
В защиту Drupal, в Linux Foundation, организации linux.com, также работает несколько небольших сайтов на Drupal (например video.linux.com). Но то, что они используют Joomla, а не Drupal для их основной функциональности на тяжелом сайте (linux.com), для меня большой плюс в пользу Joomla.
Также стоит отметить, что контрибьюторы Linux Foundation дали Joomla рейтинг пять звезд, в то время как они-же дали Drupal только три звезды.
ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ
Хотя Drupal обеспечивает наибольшую гибкость к вебмастеру, его администрирование очень сложное и имеет очень высокий порог вхождения. Клиенты должны будут нанять эксперта-вебмастера Drupal, а обычные пользователи не могут просто натренироваться, чтобы использовать Drupal, так-же как они могут быть обучены использовать Joomla. По сравнению с Joomla, административная консоль в Drupal является приборной панелью реактивного истребителя.
С точки зрения сообществ, поддерживающих CMS, Joomla имеет гораздо большее сообщество разработчиков по сравнению с Drupal. Это признак того, что разработчики предпочитают работать на Joomla.
И чтобы сделать Drupal еще хуже для бизнеса, опытных разработчиков Drupal гораздо труднее найти и они стоят дороже, чем разработчики Joomla. Опытные разработчики предпочитают работать на Joomla, а не Drupal.
Я не являюсь исключением из этого правила. Я отклонил несколько предложений работы с большими зарплатами, потому что я не хотел, еще раз пройти через боль разработки на Drupal.
DRUPAL МОЖЕТ УЛУЧШИТЬСЯ В БУДУЩЕМ
Говорят, что новый Drupal 8, который будет выпущен в ближайшее время (пока нет официальной даты релиза) массивно усовершенствован и много проблем и ошибок исправлено. Ядро Drupal была полностью переработано и перестроено и, как предполагается, много позаимствовано из фреймворка Symfony 2.
Тем не менее, до тех пор, пока Drupal 8 не будет выпущен, даже не стоит рассматривать использование Drupal в реальных проектах.
После того, как Drupal 8 будет выпушен я готов вновь посетить мир Drupal и сделать проект на нем, но я почти уверен, что к этому времени Joomla улучшится еще больше. Мы, возможно, даже получим полную поддержку TDD на Joomla (TDD или Test Driven Development является лучшей методологией разработки в мире).
ЗАКЛЮЧЕНИЕ
В заключение, если вы все еще сомневаетесь по этому поводу, поверьте разработчику, который имеет опыт работы как с Joomla, так и с Drupal. Joomla лучше чем Drupal. И это верно независимо от размера и требований к сайту.
Если у вас нет не-технических причин (например, мои пользователи уже знают, как использовать Drupal) я всегда рекомендую создавать сайт на Joomla.
Если вы где-то читали в Интернете, что Drupal лучше, чем Joomla для сложных крупномасштабных проектов, просто проверьте их показания. В тестах были рассмотрены технические детали и работы фреймворков и пришли к выводу, основанному на технических деталях? Или просто заявлено, что они считают, без всяких доказательств или ссылок в исходный код CMS?
Я видел много раз, как люди говорят что Drupal лучше, потому что он более надежен и более эффективен. Это не аргумент для меня. Я бы мог спросить их, что делает Drupal более эффективным или надежным, и они всегда будут не в состоянии ответить, когда я цитирую пять технических превосходств Joomla, указаных выше.
Перевод статьи разработчика сайтов Arash Arabi с сайта http://www.butterfly.com.au
Перевод сделал Аркадий Седельников. Материал взят с сайта http://joomlaportal.ru
jp-studio.ru
Joomla! | Drupal |
Версии | |
Разработчики Joomla в новых обновлениях стараются максимально приблизить движок к основным запросам пользователей в плане безопасности (т. е. Устранению уязвимостей), а также добавить свои нововведения, которые позволяют расширить функционал движка. Последняя версия на данный момент — Joomla 3.3.6. | Разработчики Drupal с тем же успехом закрыли в последней версии своего движка все основные на данный момент уязвимости. Последняя версия на данный момент - Drupal 7.34. К выходу готовится новая версия Drupal 8, подробнее можно узнать на официальном сайте поддержки или в новостях КОМТЕТ. |
На данный момент видимой и серьезной разницы между работой разработчиков данных движков не наблюдается — и в том и в другом случае проводится серьезная работа по улучшению функционала, защищенности и дружелюбности для разработчика. | |
Особенности начального дистрибутива | |
Joomla является разносторонней CMS, рассчитанный первоначально на создание информационных интернет-порталов. Дистрибутив «по умолчанию» включает в себя лишь наличие основных функций для создания ресурса, которые можно значительно расширить с помощью сторонних компонентов. | Drupal первоначально все таки представляет из себя больше комьюнити ресурс (комментируемый блог, форум), нежели CMS. В отличие от Joomla дистрибутив «по умолчанию» включает в себя наличие таких возможностей, как создание форума или модуль по управлению комментариями на сайте. Функционал также значительно расширяется с помощью сторонних модулей |
По данному критерию нельзя четко выделить какой-то движок. Единственный нюанс заключается в том, что в дистрибутиве «по умолчанию» Drupal все таки занимает позицию выше чем Joomla в том плане, что первоначально в него включен набор функций, позволяющих создать комьюнити ресурс, когда в Joomla для этого нужно прибегать к установке сторонних компонентов. | |
Структура движка | |
Joomla представляет собой блочно-модульный конструктор, то есть сайт является совокупностью блоков, содержащих тот или иной контент. Основная структура: сайт состоит из компонентов (заготовка из модулей и плагинов), модулей (части общей конструкции сайта) и плагинов (минимальный элемент, содержащий ту или иную функцию). | Drupal также представляет собой блочно-модульный конструктор. Основная структура: модули, в которых заключены как отдельные функции, так и их набор. |
В этом вопросе я считаю что Joomla занимает лидирующую позицию, так как система расширений подразделяется на три составляющих, имеющих иерархию, а поэтому и более тонкую установку и настройку расширений. Более того, в Joomla еще есть специальная система их установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя выполнить автоматически). | |
Коммерческие особенности расширений | |
Расширения в Joomla являются как бесплатными, так и коммерческими. На данный момент все чаще и чаще наблюдается разработка серьезных расширений на платной основе. | На данный момент основная масса расширений все таки является бесплатной. |
По поводу большего количества коммерческих расширений для Joomla , нежели чем для Drupal, можно отметить как положительные стороны, так и отрицательные. Отрицательные стороны, учитывая интересы разработчика, очевидны — покупать дополнительные расширения для бесплатного движка никому не хочется, но эту же особенность можно считать и сильной стороной Joomla, так как коммерческая основа распространения некоторых компонентов положительно сказывается на их качестве. | |
Шаблоны оформления | |
Каждый шаблон оформления представляет собой набор определенных модулей, плагинов, расположения блоков сайта, файлов стилей, а иногда и нескольких компонентов. | В данном случае шаблон представляет собой набор стилевых файлов. |
Хочется сразу отметить минусы структуры шаблонов в Joomla — если в Drupal при смене шаблона меняются только стилевые файлы, то в Joomla некоторые шаблоны порой меняют в дополнение не только общее расположение блоков сайта, но и приоритеты этих блоков (например основное меню сайта может измениться с вертикального на горизонтальное). Конечно при создании и первоначальном выборе оформления сайта данный нюанс не существенен, так как контента все равно еще нет. Но если сайт уже разработан, все меню привязаны по приоритетам, то изменение текущего шаблона на какой либо некорректный может закончится потраченным временем на исправление таких неприятностей, как например пропажа некоторых меню сайта. И все же проблема решаема — желательно использовать шаблоны проверенных разработчиков, что в том числе относится и к Drupal. | |
Уязвимости | |
Уязвимости присутствуют в ранних версиях линейки 1.5.х | Уязвимости присутствуют в ранних версиях линейки. |
По поводу уязвимости Joomla и Drupal, можно лишь посоветовать разработчику использовать последние версии используемой линейки движка, в принципе что и советуют разработчики данных движков. | |
Визуальный редактор | |
В основном это портированные и самые распространенные редакторы. Но все же самым удобным и функциональным из бесплатных является редактор JCE, разработанный специально для Joomla, составляющий очень хорошую альтернативу платному WysiwygPro. | В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраиваются. Оба являются мощными средствами. |
Конечно же выбор редактора — дело вкуса, но на мой взгляд Joomla все-таки занимает здесь лидирующую позицию из за более широкого выбора визуального редактора. | |
Работа с картинками | |
В базовом пакете включен функционал для работы с изображениями, причем настолько широкий, что в принципе не принуждает к установке сторонних расширений. | В базовом пакете вставка картинок не предусмотрена. Решается либо прикреплением картинки к посту блога, либо установкой WYSIWYG-редактора TinyMCE и медиа-менеджера IMCE. |
Здесь Joomla снова занимает лидирующую позицию из за включения в функционала для работы с изображениями в базовый пакет. | |
Производительность | |
Первоначально, более тяжелый чем Drupal по производительности базовый пакет, в наращивании расширений не столь заметно прибавляет нагрузку на веб-сервер. Рекомендуемый тарифный план «Плюс» | Менее загруженный базовый пакет при наращивании в последующем дополнительными расширениями запрашивает несколько больше ресурсов веб-сервера. Рекомендуемый тарифный план «Плюс» |
По минимальной нагрузке на веб-сервер Joomla конечно же лидирует. Но этот аспект настолько субъективный (так как загруженность будет зависеть непосредственно от количества и качества установленных расширений), что точно можно лишь судить о базовых пакетах этих CMS. |
www.komtet.ru