Делаем блог на Drupal
Недавно на своем блоге я выложил статью по поводу создания блога на базе Drupal. Выложу ее и здесь. Надеюсь, она будет кому-нибудь полезной.
Выбор CMS для блога — дело серьезное и ответственное. Полагаю, каждый блоггер, создающий standalone-блог, провел немало времени, изучая различного рода обзоры и сравнения популярных движков, а также тестируя их функционал. Такой период был и у меня.
Пожалуй, самые популярные движки сейчас — это Wordpress, Joomla и Drupal. Во всяком случае, они самые известные из бесплатных CMS. После их изучения я остановился на Drupal и очень этому рад. Не вдаваясь в подробности о преимуществах Drupal (это тема для отдельной статьи), замечу лишь, что он мне понравился следующими особенностями:
- Гибкость системы. Архитектурно Drupal построен очень грамотно и модульно, что позволяет сделать из него все, что угодно.
- Качественный код. Благодаря достаточно жесткому контролю качества Drupal и его модули не только стабильны, но и обладают вполне читаемым кодом.
Есть и свои недостатки, конечно, но я сейчас, собственно, не об этом. Сейчас, когда набор модулей и настроек у меня стабилизировался, я бы хотел написать о том, как сделать блог на базе Drupal.
Функционал блога Drupal предоставляет «из коробки». Но тут есть нюансы. Конкретная реализация зависит от особенностей блога и его позиционирования. Есть два варианта:
- Использование встроенного модуля Blog. При его включении у каждого пользователя появляется личный блог и новый тип материала «Blog Entry». Если при этом еще включить и модуль Blog API, то можно создавать записи в блоге с помощью любого внешнего клиента, поддерживающего XML-RPC. Такой подход универсален, но, на мой взгляд, избыточен для блога, который ведет один человек. Слишком уж бросается в глаза ориентированность на «мультиблоггинг». Это хорошо для многопользовательского сайта и сайтов различных сообществ, но слишком усложненно для простого блога. Поэтому я пошел по второму варианту.
- Использование для постинга стандартного типа материала «Story» (Статья). Здесь все куда проще. Материалы просто размещаются на главной странице, модуль Blog при этом неактивен. Мне кажется, такой способ идеально подходит для личного блога.
Собственно, любой из двух предложенных вариантов предоставляет базовый функционал блога. Но, естественно, существует много модулей, которые позволяют сделать блог комфортней для читателей и автора. Сейчас речь пойдет именно о них.
Вначале перечислю модули, которые добавляют функционал, без которого вряд ли можно представить себе современный блог:
- Archive. Этот модуль предоставляет архив постов в календарном виде. Модуль прост в использовании и предоставляет все, что нужно. Есть еще похожий модуль — Calendar. Но последний я бы не советовал использовать, так как он создает слишком много пустых ссылок, которые не только не несут никаких материалов, но и теоретически могут стать причиной падения сайта из-за чрезмерной нагрузки от поисковых ботов.
-
Monthly Archive. Добавляет блок «Архивы по месяцам». Показаны месяцы с количеством постов.
Comment Notify. Этот модуль нужен для отсылки уведомлений о новых комментариях в теме всем комментировавшим в этой теме. К сожалению, в модуле есть ошибки, о которых я писал здесь (там же можно скачать исправленную версию). - Comment Subjects. Модуль для установки по умолчанию более внятной темы для комментариев. Устанавливает тему вида «Re: тема_поста_или_комментария». Такой вид темы более привычен, нежели то, что предлагает Drupal по умолчанию.
- Read More Tweak. Маленький модуль для установки более привычной для пользователя ссылки «Читать далее».
- Similar Entries. Этот модуль предоставляет весьма полезный функционал — блок с ссылками на статьи, похожие на текущую. В отличие от многих подобных модулей, релевантность предлагаемых этим модулем ссылок вполне адекватна.
- FeedBurner. Модуль для поддержки RSS-каналов, транслируемых посредством FeedBurner. Осуществляет «на лету» редирект любых каналов на FeedBurner.
- Taxonomy DHTML. Этот модуль, в принципе, не является обязательным для блога. Но мне он показался очень удобным и полезным. Модуль строит дерево категорий (на основе терминов таксономии и их словарей) и предоставляет блоки с ссылками на категории для каждого термина таксономии. Это не прямой аналог популярного облака тегов, а древовидное их представление. Для облака тегов можно использовать, например, Node Cloud.
Кроме того, есть модули, функционал которых, хоть и не является обязательным, но изрядно добавляет удобства блогу:
- BUEditor. Удобный, но в то же время простой, редактор текста. Кроме того, в качестве редактора можно использовать TinyMCE WYSIWYG Editor, но мне он показался черезчур перегруженным.
- IMCE. Модуль для удобной загрузки изображений. Полностью интегрируется с BUEditor.
- Captcha. Модуль, предоставляющий различные методы защиты от спама в комментариях, такие как арифметические выражения и графические изображения.
- OpenID. Модуль для поддержки авторизации по OpenID. В этом модуле я тоже нашел пару ошибок. Их описание и исправленный модуль можно найти здесь.
- GeSHi Filter. В случае, если на блоге предполагаются статьи с примерами исходных кодов, этот модуль просто обязателен. Он осуществляет подсветку синтаксиса для очень большого количества языков программирования. При этом он не использует для подсветки JavaScript, а предоставляет полноценный фильтр для материалов.
Конечно, в этой статье я перечислил не все модули, установленные у меня. Это просто определенный «джентльменский набор», который необходим для создания полноценного блога. Надеюсь, этот материал будет полезен начинающим (и не только) друпалерам. В свою очередь, буду рад рекомендациям по еще каким-нибудь полезным модулям, пропущенным мной.