In a recent webinar one participant asked about inline images in Drupal 7. I pointed to a tutorial we have here on Acquia.com, and mentioned the "Insert" module.
That sparked another question: "The name Insert doesn't scream 'picture handling.' How can you find the right modules?"
Modules in Drupal (sometimes called "plugins" or "extensions" in other CMS's) extend the base functionality with contributed or custom code. The naming convention with Drupal modules is "short and sweet." This makes them easy to reference and remember, but it's a bit confusing when you’re searching.
Who would have known, for example, that the Bean module at http://drupal.org/project/bean is the name of the module you should use if you want to be able to to add fields to blocks? The acronym (Block Entities Aren't Nodes) isn't likely to communicate anything to someone who is just learning Drupal.
In this five-part series I’m going to show you how to discover, evaluate, test, and “learn” Drupal modules to determine if they are the right fit for your projects. We’ll also explore capabilities people tend to think they need modules for, but Drupal does right out of the box. Here's an outline.
- Starting your search: Identify your needs.
- Discover modules: How to find out which modules of the 20k are the right ones for your needs.
- Evaluate: How to read a Drupal project page. Determine the health of a Drupal project.
- Test: Quickly test modules to check out their functionality.
- Learn: How to approach a new module and understand how it works, what configuration options are available and what you can do with it.
More experienced Drupal users take these module procedures for granted. But that simple question in the webinar made me realize that much of what you need to know about module selection is implicit and sometimes hard-to-find.
If you’re stuck trying to find a module for X, please leave a comment and I’ll help you find the module you’re looking for. You can also check out a recent webinar we created to kick this series off. I hope you’ll join along in the comments so I can help you select the right module for your needs.
Starting your search: What are your requirements?
As you begin your search, take stock of your requirements.
- What is the main purpose of the module you’re looking for?
- Does it need to integrate with another system or another module on your site?
- Should it provide data available to Views for display?
- Should it provide fields for use in content, profiles or entities?
- Do you need non-technical members of your team to be able to configure any functionality in the module?
- Should you be able to customize templates for the display of the results of the module?
- Should it provide any blocks for display?
This will help you refine your search.
Check: Do you need a module for that?
Next, let’s consider an important point. You might not actually need a module to do what you need to do. Other CMS's have many of what I call “gestalt,” or all-in-one, solutions, which provide management, data entry, display, or listing data. Typical examples include an event manager, an image gallery, or perhaps a staff-listing module, which lets you configure profile fields, listings, and display pages.
When people ask me, “Does Drupal have a module for X?” I’ve often found myself replying a three step solution:
- Model the data with fields added to content types/entities/profiles/blocks.
- Configure display (usually using some contributed modules that specifically handle display.)
- Create lists with Views
If you’re not already familiar with using fields, creating content types and configuring Views, then you should certainly start there. Our 2-day intensive workshop, Site Building with Drupal 7 focuses entirely on ways to combine contributed modules and core Drupal functionality to build your sites. The nice thing about this more abstracted approach is that once you learn how to take advantage of these components they have much more flexibility. The training we offer is a great way to get started with Drupal, so check out the list of upcoming training events.
What modules are you looking for?
OK now, so let’s play STUMP THE CHUMP! Come at me with your questions while you’re searching for a specific module. Are you looking for a module that does X? Are you comparing two different modules? What help do you need deciphering the wealth of data on a project page? Post your questions in Comments, below.
In the next posts, I’ll guide you through where to find modules and how to evaluate them.