Drupal

warning: Creating default object from empty value in /home/solarwind/www/solargate.ru/www/modules/taxonomy/taxonomy.pages.inc on line 33.
CMS-система Drupal

Drupal - это сложно?

Angry DrupalНавеяло вот этим постом на хабре. Заметка повествует о непомерной сложности Drupal, отсутствии нормальной документации для него и всем таком прочем. А постольку поскольку я очень люблю эту систему, то напишу свое мнение по этому поводу. Кроме того, меня достаточно часто спрашивают, какую CMS стоит выбрать для блога или какого-либо другого сайта. Надеюсь, что эта заметка будет кому-нибудь полезна и для осуществления этого выбора.

Я весьма часто встречаю мнения, что Drupal - это слишком сложно. Что приходится делать слишком много телодвижений, чтобы собрать сайт из модулей и настроить их. Корень проблемы здесь только один - почему-то многие люди воспринимают CMS как готовое решение для создания сайта. В силу такого отношения эти люди морально не готовы к глубокому изучению системы. Не готовы к поиску информации, к изучению API системы и ее архитектуры. Говоря обобщенно, они хотят видеть кнопку "Сделать сайт" или "Сделать блог" и искренне недоумевают, когда система им этого не предоставляет.

Drupal, в отличие от, например, Wordpress или Joomla, не является готовой к быстрому развертыванию системой. По сути, это даже не CMS в привычном понимании этого слова. Drupal уже достаточно давно пошел по пути развития CMF (Content Management Framework). Это означает, что он предоставляет лишь минимальный готовый функционал. Все остальное реализуется сторонними модулями разной степени сложности или разработкой собственных модулей. Поэтому у друпала действительно значительно выше порог вхождения, нежели у многих других CMS. Необходимо потратить некоторое время для изучения хотя бы базовых принципов системы, прежде чем заниматься непосредственно реализацией сайта.

Именно за счет этого достигается потрясающая гибкость системы. На друпале действительно можно сделать все, что угодно. С системой можно творить чудеса. Но для этого надо изначально быть готовым к следующему: Читать далее »

Модуль Poll Node для Drupal 6.x

Когда-то я написал модуль для вставки опросов в тело ноды для Drupal 5.x. Модуль используется у меня в блоге, и судя по комментариям, пригодился не только мне. Тогда меня просили адаптировать его для Drupal 6.x, но я, в силу своей лени, сделал это только сейчас. Когда сам перевел блог на шестую версию друпала. Так что наверстываю упущенное.

Настройка модуля полностью такая же, как в версии для Drupal 5.x. Прикладываю его к этому посту. В модуле есть маленькая ошибка - опрос не вставляется в текст по нажатию ссылки "Insert Poll". Честно говоря, нет никакого желания в этом разбираться. JavaScript я не люблю, в jQuery не силен, и возиться с этим нет никакого желания. Основной функционал от этого не страдает и модуль остается вполне юзабельным. Собственно, здесь у меня он и продолжает использоваться.

Кроме того, для той же самой цели могу посоветовать альтернативу, которую очень хвалят - Inner Poll.

Добавление региона для блоков в Drupal 6.x

Когда-то я написал заметку о добавлении региона для блоков в Drupal 5.x. А вчера мне довелось поучаствовать в обновлении блога Мак Сима с пятой до шестой версии друпала. И в процессе обновления нам пришлось разобраться с тем, как создавать регионы в шестерке. Надо сказать, что мы наткнулись на маленький подводный камень, который почему-то не описан в рунете (или мы плохо искали). Поэтому опишу здесь весь процесс от и до. Все на самом деле весьма просто.

Для начала еще раз кратко опишу задачу. Необходимо создать регион, в котором можно размещать блоки. Регион должен быть размещен только в ноде, сразу после текста (content), но до комментариев.

Все изменения, так же, как и в Drupal 5.x, проводятся только на уровне темы оформления. В нашем случае это была тема Aurora, найденная на drupal.org. Но идея одинакова для всех тем.

Вначале необходимо определить новый регион в info-файле (в нашем случае - aurora.info). Добавляем в него следующую строчку: Читать далее »

Модуль Poll Node для Drupal 5.x. Вставка опросов в тело ноды

В Drupal "из коробки" существует возможность создавать различного рода опросы-голосования. Функциональность этого модуля меня полностью устраивает, за исключением одной особенности - опрос представляет собой отдельный тип содержания. Это значит, что в опросе есть только, собственно, опрос, и ничего более.

Мне же кажутся более удобным голосования в стиле LiveJournal - когда опрос вставляется в контексте предшествующего или последующего текста. То есть, требуется возможность вставки опроса в произвольном месте в тексте поста. Этого можно добиться с помощью простого сниппета:

<?php
$myoutput = poll_block('view');
echo $myoutput['content'];
?>

Если вставить этот код в тело поста и включить фильтр PHP, то опрос отобразится. Но отобразится только последний опрос, вставить конкретное голосование таким образом невозможно.

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

Исправляем баги в Drupal

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

Как выяснилось, это действительно ошибка, и лечится она достаточно просто. Спасибо за наводку Уникальному Человеку. Надо найти в файле /includes/theme.inc строчку:

$output .= ' ('. t('not verified') .')';

И просто закомментировать ее. Решение, может быть, не очень красивое (по идее, стоило бы проверять признак премодерирования), но работает. Может кому-нибудь еще пригодится.

Делаем блог на Drupal

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

Пожалуй, самые популярные движки сейчас - это Wordpress, Joomla и Drupal. Во всяком случае, они самые известные из бесплатных CMS. После их изучения я остановился на Drupal и очень этому рад. Не вдаваясь в подробности о преимуществах Drupal (это тема для отдельной статьи), замечу лишь, что он мне понравился следующими особенностями:

  • Гибкость системы. Архитектурно Drupal построен очень грамотно и модульно, что позволяет сделать из него все, что угодно.
  • Качественный код. Благодаря достаточно жесткому контролю качества Drupal и его модули не только стабильны, но и обладают вполне читаемым кодом.

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

Drupal. Добавление региона для блоков

Чем больше разбираюсь с Drupal, тем больше он мне нравится своей гибкостью. На этот раз мне понадобилось добавить регион для отображения блоков. В базовом варианте доступны регионы "заголовок", "левая панель", "правая панель", "содержание" и "подвал". Мне понадобился регион для отображения его в теле поста (ноды). Регион "содержание" мне не подошел, потому что он выводит блок после поста и комментариев.

Как выяснилось, сделать новый регион очень просто. В этом мне помогла вот эта статья. Дальше интересно будет только друпалерам и интересующимся этой темой. Читать далее »