Как делать свою работу быстро. Часть вторая - модули Друпала.

Модули для шестерки, которые упрощают жизнь разработчика и модератора. Рассмотрены модули: Administration menu, Block edit, Masquerade, Devel, Module_filter, Drush, Fasttoggle, Admin links, Delete all, Views Bulk Operations (VBO).

Разработка, настройки

Administration menu - ну это must-have для 99% сайтов. Для админа в шапке страницы показывается горизонтальное меню, с выпадающими ссылками для быстрого администрирования. До любой части админки можно очень быстро доползти, без лишних обновлений страницы в браузере. Еще очень быстро можно обновить кеш или запустить крон, наведясь на иконку сайта там же в меню. Sun, разработчик модуля, давно ведет неравный бой с глубокими багами в ядре Друпала, из-за которых 3ая версия модуля иногда глючит и ломает целиком админку незадачливым пользователям. Пока - не очень успешно, обсуждения на сотни постов (ссылки на которые есть на странице модуля) очень познавательно почитать вечером за чашечкой крепкого чаю. Читая такие вещи, понимаешь что Друпал - уже не та молодая свежая системка, где можно по-быстрому чего-нибудь пофиксить и закоммитить, пока никто не заметил. Вылазят зависимости с другими модулями, связанные проблемы, случаи-исключения, - миллионы инсталляций это вам не шутки.

Block edit - наводишься мышкой на блок, и на нем появляется ссылка "configure". Кликнув, можно быстро поменять настройки этого блока. Просто, быстро, удобно, доступно для пользователей. В свежих релизах удобнейший функционал доступен уже и для нод - удаление, редактирование, и другие действия. Надо сказать, что в Друпал7 этот функционал уже встроен в ядро, как "contextual links".

Masquerade - больше трех ролей на сайте - это явно достаточный повод устроить маскарад. Модуль создает блок для быстрого переключения между пользователями. Создаем на каждую роль пользователя, и на лету переключаемся между юзерами, не теряя админской сессии, к которой легко вернуться, кликнув switch back. Для тестирования проектов с сотнями и тысячами галочек на странице прав доступа - совершенно незаменимая вещь.
Devel - аптечка для Друпал-разработчика. Нормальные бектрейсы, статистика sql запросов, время выполнения страницы, быстрый доступ до таблицы variables из админки - это далеко не полный список фич. Например, очень легко можно подключить великолепный FirePHP - аддон для Firebug'а, для вывода дебаг сообщений не прямо в браузер, а в консоль. Детали (англ.) - http://www.balancedscale.com/blog/200903/installing-firephp-drupal
Module_filter - когда установлена сотня-полторы модулей, на странице с их списком можно потеряться. Чтобы такого не случилось, юзаем этот модуль - он создает на странице модулей текстовое поле, вводя в которое несколько букв вы быстро отфильтруете модули по названию на лету. Простите за тавтологию :) Фильтрация, как вы могли догадаться, работает на яваскрипте. Идея модуля настолько хороша, что я написал аналог (quick_filter), не зная о существовании оригинала (и безуспешно погуглив перед этим). В свою защиту могу сказать, что мой jQuery код получился посимпатичнее, поэтому я поделился своим вариантом кода с разработчиком module_finder - http://drupal.org/node/527518
Drush - оправдан на больших проектах, где работа идет не одну неделю. Позволяет делать рутинные операции типа скачивания модулей, их включения, быстрых тестовых sql запросов, бекапа бд - через консоль. Например, чтобы установить views, надо в putty набрать
cd /var/www/drupal_dir
drush dl views
drush enable views

Menu editor - помогает быстро создать и редактировать меню сайта, вся работа делается на одной странице без перезагрузок. Очень полезная штуковина.

Content copy - помогает быстро скопировать CCK поля из одного типа нод в другой. Поставляется с CCK.

Views export - похожая штука, но для Views. Очень удобно на больших и сложных сайтах создать вьюшку через Views UI, экспортировать, сохранить в свой модуль - и положить в систему контроля версий. А можно экспортировать, и перенести на другой сайт - только удостоверьтесь что зависимые модули на сайте-получаете стоят аналогичные сайту-донору. Поставляется, как вы могли догадаться, с Views.

Работа с контентом

Fasttoggle - помогает быстро снять с публикации какую-то страницу, или сделать ноду sticky. Очень удобно, например для упрощенной пост-модерации - ссылки работают на аяксе, без перезагрузки страницы.

Admin links - если вдруг мой друг block_edit вам не угодил - удаление и редактирование ноды прямо из тизера. Не надо сначала переходить на страницу ноды, потом искать таб edit, ...

Delete all - быстрое массовое удаление нод и пользователей.

Views Bulk Operations (VBO) - отличная вещь, способная с помощью всей мощи views легко заменить все административные страницы типа списка нод (admin/content/node) и списка пользователей на гораздо более мощные views-powered списки с расширенным функционалом. Скажем, если вы на странице списка пользователей хотели бы фильтрацию по имени, или по дате последнего захода на сайт, или хотели бы быстро отыскать и удалить все ноды с каким-то cck полем, выставленным в определенное значение, или еще что-то в этом духа - vbo очень помогут. Установив дополнительные модули, можно делать совсем уж космические вещи, например управлять через views блоками сайта - заменив страницу admin/build/blocks - http://drupal.org/project/views_block

Вывод:

PHP программисты могут вздыхать огорченно, на каждый чих уже по три модуля есть. Повторяю для себя, и для других, как заклинание: сначала гуглим, потом спрашиваем других, потом пишем свое. Для новичков еще раз - СНАЧАЛА ГУГЛИМ!

Если у вас есть предложения, что еще добавить в этот список модулей, увеличивающих эффективность работы, пишите в комментах.

upd 11.03.2010: добавлены views_export и content_copy, подсказано Oleksa@drupal.org

Blog categories: DrupalМодулиЮзабилити