A blog by the Brick Factory The Brick Factory

Five Nifty Drupal Modules

We have used Drupal as our primary platform to build web sites since 2007.  It is a robust content management system that allows us to develop powerful websites.  While it has a lot of capability out of the box, one of the most attractive things about Drupal is the wide variety of modules available that add functionality to the system.  Below are five nifty modules that we have used.

1. Draggable Views

We commonly use the Views component of Drupal to display a collection of a certain type of content in an organized fashion.  There are various ways to sort content: alphabetically, publication date, popularity (as dictated by the comments, page views, etc.), and other criteria.  However, we had a client for who such sorting was not helpful.  Further, there are several pages on their site in which they had to manually dictate the order of content in the view.  With a little research we came across the Draggable Views module that allows site admins to use their mouse to drag and drop content where it should be.  It is very handy.

2. IP Login

For another client, we had to place downloadable files into a secure folder – meaning that only users with member roles could access the files.  That in itself is not too complicated, but in addition to the client’s members, we also had to provide access to these files for people at certain organizations.  The client provided ip address ranges for the organizations.  To meet this need, we created a role that only granted access to the applicable files.  Then we created user accounts for each ip address range.  The IP Login module allowed us to automatically log users in coming from those ip ranges for seamless access.

3. Hide Submit Button

We set up a groups site for a client.  However, we ran into an issue; some of the users are impatient when they hit submit buttons.  Thus, they would hit the submit button.  Before the process finished, they would hit the button again.  This would result in duplicate submissions of comments, in this case.  We used the Hide Submit Button module to display an image indicating to the user that their submission is still being processed.  It further disabled them from hitting submit again until the process completed.  One of the cool things about this module is that the site administrators can designate which pages this behavior occurs.  This module was a quick fix to a problem.

4. Views Bulk Operations (VBO)

VBO may not be a “sexy” module, but it is handy.  It is mainly geared toward development work when it is not uncommon to make the same change to a vast number of pieces of content on a site.  This can be used in many ways.  When a site was deluged by tens of thousands of spam comments, we used VBO create pages with many more items listed on each page.  Instead of deleting 50 comments at one time, we were able to delete tens of thousands all at once.  The process took over an hour to complete, but that beat deleting 50, waiting, and then deleting 50 more.  This is just one use for this time saving and frustration preventing module.  However, be careful, because you can also screw up a lot of content; so be sure that what you’re doing is correct.  (Needless to say, we love CAPTCHA when it comes to web forms.)

5. Search and Replace Scanner

Like VBO, this is not a very sexy module.  However, it has come very useful for us.  We were tasked with porting over thousands of static pages from a site into Drupal.  We had our programmers develop a spider program to pull out the content into a csv file so that we could import it into Drupal.  However, there was still A LOT of clean up to do, and we soon realized that we came across a lot of common fixes.  This is where the scanner came in.  It was very helpful.  Having said that, like VBO, you have to be careful since you can definitely goof up a site badly if you’re not careful.  I remember pestering our systems team to back up the database a lot while using this module.

Note that the availability of these modules for various versions of Drupal (5, 6, 7…) will vary.