Manage your Drupal website faster: best modules available

Working in vanilla Drupal 6.x admin interface can be a real pain for average content manager, and sometimes even for developer. Things are much better in Drupal 7, but 6.x branch is still very strong in terms of popularity. In this post I've reviewed modules for 6.x branch, which make life of Drupal admin and moderator much easier. Pixeljets use most of these modules on every website we're creating.

Development, settings management

Administration menu - that's a must-have for 99% of websites. Horizontal menu is shown to admin, with dropdown links to all pages in your admin section.   So you can get to any part of your website without page refreshes. You also have quick shortcuts for cache flush, and cron run. Sun, the developer of the module, is still fighting with some ugly bugs in Drupal core menu system, which make admin_menu branch 3.x unstable (and it really can break your website admin section functionality -- so I wouldn't recommend this branch for unexperienced developers.) Sometimes, when I'm in special mood, I make tea and spend another hour on reading issue queues of Drupal core, and while reading these things, you realize -- Drupal is already not that young tiny product where you can quickly fix something and commit that during one work day. There are always some issues with dependencies, related bugs, misc exceptions - and you have to deal with this fact when creating your code.

Block edit - hover on block, and see "configure" link. You can quickly go to block settings when you click it. Simple, fast, and usable. In fresh releases you can also see these hover-links on nodes - delete, edit, and other node actions are available. In Drupal 7, very similar functionality is injected in core, as "contextual links" module. Yay!

Masquerade -- having >3 roles on your website is enough to consider using masquerade module. It creates block for quick switching to your users -- so, you can "become" that user from your admin session, see how your website looks like, and switch back to admin. I usually create 1 test user for each website role, and add these users to masquerade shortcut links -- that saves tons of time when you are testing website functionality against different access levels. That's really a killer module if you have hundreds of checkboxes on your permissions page.

Devel - toolbox for any Drupal developer. Detailed debug backtraces, sql queries stats, page execution time, quick access to variables table from admin section - and lots of other features. Just another feature - you can easily turn awesome FirePHP (firebug addon for debug messages) on, and get all debug messages not in your website layout, but in your firebug console. More details on the topic: http://www.balancedscale.com/blog/200903/installing-firephp-drupal

Module_filter - when you have hundreds of modules enabled, it's so easy to get lost in drupal modules page. To avoid that, consider using module_filter - it adds textfield on modules page, which works as a on-the-fly filter for module list. (please forgive my tautology)Filtering, as you might have guessed, is working via javascript. The idea of the module is soo amazing, that I've created alternative (quick_filter module) and even published it to drupal.org, as I couldn't find this module in google.  In my defense, I can say that my jQuery code looks more elegant, so I've stopped the development of my module when I discovered module_filter, and shared my ideas to module_filter maintainer: http://drupal.org/node/527518

Drush - is Drupal exposed to console. It allows you to do every-day tasks like module downloading and enabling, quick sql queries execution, db backups - via console. For example, to download and install views, you type: cd /var/www/drupal_dir   drush dl viewsdrush enable views  Drush is a new way of doing things in Drupal world. It's a huge timesaver - to update your website, you don't need to download each module manually and carefully replace module files - you need to run "drush up" and your Drupal core and modules code and db are updated. My hosting provider has drush enabled and configured by default, and that's so nice.   Menu editor - helps you to design your website menu structure in quick and easy way. You see all your menu items on one page, and you add more links - and the cool thing here is that you can enter placeholder, like "", where page is a content type name, instead of exact page address. And the menu item is created, and when you click on this menu item in your website navigation, you get redirect to new page node creation, and it will be tied to that menu item when you click "save" button. This module is invaluable for prototyping of extensive website structure.   Content copy - helps to quickly clone CCK fields from one node type to another, or dump field definitions to code. It comes with CCK module.   Views export - similar to content_copy, but Views-related. It's very cool to create view using Views UI, export it, and put it in you own module (so, you can use your version control system to track changes in view). Or you can export view from one site and move it to another website - but make sure that all the dependencies are in place. This module comes with Views.

Content administration

Fasttoggle - helps to unpublish any page quickly, or to make some node sticky. This module can be useful for simple post-moderation approach - as all the functionality works using AJAX.

Admin links - if my friend block_edit is not good enough for you, try admin_links module - which shows delete/edit quick links in node teaser.

Delete all - quick mass deletion of nodes and users (so helpful when testing bulk-import scripts!)

Views Bulk Operations (VBO) - impressive piece of functionality, able to replace all Drupal content admin pages (like admin/content/node, or users list) with much more powerful views-powered pages. Would you like to get filtering by usernames on admin/user/user/list? Or filtering by last login date? Easy. Would you like to filter nodes by some cck field value, and delete them? That's so easy with vbo! By installing additional modules, you can do really outstanding stuff - for example, manage your website blocks using views - check this out: http://drupal.org/project/views_blockConclusion: PHP developers can sigh sadly - as, literally speaking, there are already 3 modules implemented for every idea in your head. I repeat these words every day when I develop new website with Drupal (I call them Drupal spell) - if you need some functionality - 1) try to google 2) try to ask other Drupallers 3) and only after that, create your own code. Let me repeat again, for some newbies from Drupal.ru :) - TRY TO GOOGLE!If you have more ideas on what to add to that list of modules, feel free to leave a comment.