This document provides guidance on selecting the right Drupal modules. It outlines a 5-step process: 1) Define your requirements, 2) Search for modules, 3) Initially evaluate modules, 4) Test modules, and 5) Learn how to use modules. The document encourages defining needs before searching, looking at the Drupal.org project page for initial evaluation, using services like SimplyTest.me or Acquia hosting for testing, and reviewing documentation, permissions, and functionality when learning a module.
3. Purpose: How to locate, evaluate and select modules
About you:
→ For those who are new to Drupal
→ Evaluating Drupal solutions
→ Know some Drupal essentials already: Blocks, content
types, Drupal building basics
In this webinar?
4. BEAN module?
(cc) BY 2.0 cookbookman17 https://www.flickr.com/photos/cookbookman/5535057893
8. Do you need a module?
You might be searching for
an all-in-one solution.
You can build with Drupal
out of the box
9. Three step solution
1. Model the data with fields and entities (usually content
types, there are others *)
2. Configure display
3. Create lists with Views
* Entities include Content types, Taxonomy, Comments, Profiles, Blocks (with a
contributed module :)
38. What to look for?
Help / documentation
Configuration options
Review the permissions
Is there a block available?
Is there a new content type made available?
Is there a theme template available?
46. Keep an eye on the Acquia Blog
I’ll follow each of these steps in depth in upcoming
tutorials.
Editor's Notes
In a recent webinar one participant asked about inline images in Drupal 7. I pointed to a tutorial we have here on the blog and I mentioned the "Insert" module. Then another question came in: "Insert doesn't scream 'picture handling'. How can you find the right modules?"
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. 0Let’s take the Bean module as an example, what do you think it does?
By default, Drupal blocks have fixed fields and configuration. You set the title, whether that title displays, and the content.
Who would have known that Bean http://drupal.org/project/bean is the name of the module you'd use if you wanted to be able to to add Fields to Blocks?
In fact it’s such popular functionality that you can now create Custom block types in Drupal 8, so you can make block types and add fields to them.
The same extensible functionality that was previously only possible with Content (Nodes) has been extended to other entities. And with Drupal 8, this includes Blocks.
Hence the title: Block entities aren’t nodes.
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 other 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?
Next, let’s consider an important point: You might not actually need a module to do what you need to do. Other CMSs have many of what I call “gestalt” modules. By that, I mean “all in one” solutions which provide event management, date entry, display, registration. 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
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.
Since Drupal 6 - Specific modules are being replaced by the combined features of more generic modules.
In older versions of Drupal there were many all-in-one solutions such as Events or Stafflist. These can be replaced with configuration of more commonly used modules which are generic and flexible. The old “Events” module - all in one. Replaced by Fields/Date/Calendar/Views. More flexible system of fields and displays integrates with other modules.
This is a probably a good time to mention we have a site building course which focuses entirely on these aspects of what you can do with Drupal right out of the box. We show you how to make member lists, event calendars, and referenced content lists.
The obvious place to start is on Drupal.org, and the less obvious place is in your local user group. I think that can be really frustrating for new users. Lots of information, key information, isn’t available explicity online.
You’ll find the community quite friendly and generous. People are going to be your best resource. However, they will have expected you’ve covered your bases first.
Drupal.org search results will prefer the most popular, widely used modules. And that is a path you can follow confidently.
Start your search on Drupal.org. This allows you to filter your search by version, and status of the project.
The categories search options allows you to search by the area they relate to, for example administration modules or media modules.
You should also review the in-depth case studies available in the community, paying closer attention to the more recent ones. It’s amazing to see that developers are forthcoming with details about modules they’ve evaluated and which ones they chose. They also speak about the gaps and where they needed to provide custom code.
Acquia’s case study page: http://acquia.com/resources/casestudies
Drupal.org case studies are great. Written by developers for other developers. Pay attention to the modules used. Search by your sector.
The best way is to get in touch with people in your local community. You’ll be really surprised at the practical advice you can get, which is really hard to glean from the obvious sources.
What you should watch out for is that “The drop is always moving” and new trends in development are evolving all the time to keep up with the demands in web development. You could have found out in a Drupal Camp or DrupalCon that the community was centralizing on CKEditor, even if another WYSIWYG editor had wider usage at the time.
At larger community events, more and more the presentations are being published online.
For example, here’s a presentation which introduces a new module available.
Description: This should provide some basic information about the project and you should be able to tell what requirements the module has.
Project information: Maintenance status and how many reported installations. Just because only two others use use a project, doesn’t mean it’s not a good start for a solution for your team.
Downloads: Is there a compatible version available? If it's not recently updated it might be a warning sign, or it might just be a stable, well used module that just works.
Maintainers: Is there an active team of maintainers?
What are current issues? The graphs indicate recent activity and also a brief analysis of how responsive the maintenance team is. Keep in mind most of this work is done on a voluntary basis, so if you’re willing to help out, you can often get a better response.
Is Documentation available? This will help you in the next step of testing and exploring the module.
The project information provided should be considered in relation to the other information.
Take a “maintenance first” approach to module selection
Browsing through the module categories gives you a sense of the range available. Some are utility modules, some work at a system level, some at a user interface level.
We’ll go into module selection in more detail. but emphasis here, as again, that each module must be maintained.
I like to compare these two modules - they might seem similar on the surface. Let’s look at their project pages.
It might make sense to use the FAQ field. However, if you’re only managing ONE FAQ display, then the all-in-one FAQ solution might be much easier.
On simplytest.me, you can select a specific project to evaluate and a temporary site will be created with that module installed. It couldn’t be easier. After you select your project and Launch sandbox, you can log right in to try out the module.
You can log right in. The dependencies would be installed and enabled.
You can create a Drupal 7 site for free on Acquia hosting
If you have an existing account, you can add a site, and then install Drupal.
From there you will select the distribution.
You can follow the tutorials available on our documentation site for installing modules on your hosted site. However, you might prefer to work locally to try out modules as you go.
If you haven’t already, now is the time to set up a local copy of your own site in Dev Desktop.
Testing on a local clone of your own site can make any conflicts of compatibility apparent.
If you connect your site to Acquia Cloud hosting all your changes can be pushed or pulled from your local site to your hosted site.
This makes it really easy to use version control to keep your site maintained.
Modules often add new configuration options when they are installed. Some modules create new content types, some add new permissions options, some add help files and configuration options. A quick way to do this, if you’re familiar with PHP development would be to open up the module itself and see how the module is written. However, you still might like to see it from the administrator’s point of view. Let’s look through these possibilities, step-by-step.
I’m always curious what permissions become available with a new module. It’s interesting to note that some modules, for example the Flag module have one set of permissions available in the regular permissions screen, but also a special configuration screen available.
Modules sometimes include blocks which will display some content for you, or even have configurations available.
Is there a theme template available?
Project pages often have help files available.
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 join us then for a webinar where we’ll go through these steps together.
I’d love to hear what questions you have so we can follow up together in tutorials and more lessons.