Drupal Core Modules Overview
Have you ever heard the comparison made between Drupal and LEGO? If not, it goes a little something like this: the Drupal content management system (CMS) is like those LEGO sets you played with as a child. While the base set was fun, you often felt limited in what you could do with it'which is why you wanted your parents to buy you add-on sets to extend the possibilities of play. This is the role of the Drupal module.
Modules, like any other CMS add-on or plugin, give developers the ability to enhance the power of their websites through a simple-to-use extension that integrates with the core. Whether they've been created by Drupal or were contributed by outside developers, you can find all of their current modules on their website.
67 Standard Core Modules to Get Acquainted With
Rather than try to sort through the tens of thousands of modules available within Drupal, let's instead focus on the standard core modules every developer should know about.
This module dictates what type of task should be completed once a designated action (see Trigger module below) takes place. For example, if someone submits a post, you can create an action that forces a notification email to be sent to you.
This module is a way for you to easily collect content from various sources. So if you want a list of content from external websites (as well as your own) to appear on your website, you can use this module to collect RSS and XML feeds into a single display.
This module is a simple way for you to block a specific user IP address from accessing a website.
Block modules allow you to create various sections or blocks of content on your website. You can define themes, regions, pages, and content types where these blocks appear. You can also define user access to each block. The Block management screen is where you organize and position each block as it relates to other blocks that appear within a page or region.
If your users want to develop content from their desktop and import it using an XML-RPC API program (eg, Blogger Data API, Movable Type API, etc), this module will enable you to do that.
This module is a way you can tie together a number of pages within your website's structure. So if you've created a resource section with a title page and a number of sections or chapters below it, you'd use this.
This module is where you can define the parameters for their website's responsive design. Width, height, and resolution can all be defined using a number of media queries.
This module is a text editor with a drag-and-drop WYSIWIG interface and a clean way to paste in content from other sources.
This module is used to not only change the color of scheme of your themes, but also the elements (fonts, links, etc) within it.
This module, when activated, sets up a comment form on each node (or page) to which it is attached. You can customize the form fields, administration rules, and more here.
This module allows you to export and import live configuration settings for your website for the purposes of development, staging, testing, and moving a website.
This module is where you go to create different forms for your website. You can define email recipients, subject categories, user limitations, and more.
This links module creates on-page links within certain modules. This way developers and other designated users don't always have to return to the dashboard to make updates and can just do so right on the page.
This module gives you the ability to turn the dashboard information on or off. If activated, users can visit the dashboard for important site information.
This module monitors and provides a log of your website's performance, activities, errors, and other usage data.
This module enables you to include the Date field within your content (like if they wanted to include the publish date on their blog posts).
This is also known as the Quick Edit module which enables you to do in-place editing on content fields without having to work in the backend.
This module is the backbone of the CKEditor module. In essence, it allows other modules to more easily create and edit text without having to use HTML and instead rely on WYSIWYG.
This module allows you to insert email addresses as a field, either as a clickable mailto: link or as plain text.
Entities in Drupal are the various pieces that come together to create your site's content, including comments, files, taxonomy, and users. This module gives you power of managing those pieces.
This module is for when you want to include a reference or link to another entity (or piece of content) from your website.
This module enables the Field API so that different types of data can be added to your content (like titles, tags, and images).
If you want to insert files into your content, this module will allow you to create a field whereby you can upload and manage your site's files.
For greater control over the types of HTML text formats users can add to your site's content (Drupal distinguishes them as full, restricted, and basic HTML), use this module.
This module allows you to set up forums and other discussion boards on your website.
HAL, also known as Hypertext Application Language, serializes your site's content into a HAL+JSON format which is then used by the RESTful Web Services module.
This module creates a Help page for backend users of a website. So if you run into any issues with installed modules, you can find information on them on this page.
If you want to track which content is being read by various users on your website, you can use this module to do so. However, it will only show you data associated with known users.
For image insertion and manipulation on your website, enable this module for access to the image and settings panel.
This module enables you to set the standard language for their website. This module also allows you to assign other languages to various items (like menus, nodes) and gives users control over which language is used in their admin interface.
When enabled, this module allows you to create responsive layouts for your website's blocks and other entities.
Unlike the entity reference that allows you to insert internal links within your website, this one allows you to insert links to outside sources.
In order to create lists on your website, you'll need to enable this module. You'll then be able to define the specific type of list you want to use (eg, Boolean, integer, text list, etc)
This module will provide you with the ability to create, delete, and manage your website's navigation and other menus.
In order to create links and entities within your site's menus, you'll need to enable this module.
A node is where each piece of content on your website is stored. So once enabled, you can create, edit, and change the settings of your content within this module.
This module will enable you to create number fields on your website.
This module gives your users the option to log into your site with an OpenID. It's a more secure system for logging in and also allows them to use the same username and password for any site equipped with an OpenID login option.
When using the Number field, you may need to define the options for it. In this case, you'd elect whether the number can be selected by clicking on it, checking a box, or using a radio button.
This module changes how your admin panel works. So without activating this module, any time you clicked into one of the admin options, a new page will open in your browser. When you have this module enabled though, the admin panel will open in an easy-to-close overlay.
The standard URL path for pages on a Drupal website will look like this: http://website.com/?q=node/10. If you want the ability to change that, activate this module.
This is a simple module that lets other websites know when you've linked to their content (called a "pingback").
When you want to create a poll or survey on your website, use this module. It'll give you the ability to set a limit on votes, track answers, and let your users create their own.
If your website has a need to showcase users' or visitors' profile information (like in a message board or in blog comments), you can use this module to allow them to create their own profile.
For websites that want to allow for third-party integration or for other applications to get information from your site, you'll need to enable this module in order to establish a REST API.
RDF stands for "Resource Description Framework". This module enables your website to easily share information with other sites, search engines, social media, and more.
This module is for when you want to include a search function on your website. You can keep it as a basic search bar or expand it to allow for more advanced searches.
This module works in conjunction with the REST and HAL modules. It is the process of serialization that allows the two to work together to translate data into JSON or XML.
The shortcut bar in your website's admin backend is where you can store commonly used functions (like "Add Content"), so enable this if you want to customize these options for your site's users.
This module serves as the analytics for your website's content. You can track popular pages, view counts, site usage, and more.
This module is something to consider in lieu of the Database logging module. It serves a similar purpose in that it tracks activity and issues on your site, but it's more lightweight so it's better for overall site performance.
For developers that want more control over scheduling regular system tasks and determining system defaults, use this module.
Taxonomy is Drupal's version of metadata, tags, and categories. So if you want to optimize your site's content, you'll need this module.
This module is for when you want to insert telephone number fields into your website.
This module allows you to run tests on your Drupal website. You can automate and schedule these tests or you can conduct them as one-offs as module testing is needed.
When you want to insert text fields into your content, use this module.
If your website should experience a surge in traffic (whether it's due to a referral from another website or from a security breach), you'll want to put a throttle in place so you site doesn't go down. This will allow you to set certain rules for how your website will function if the amount of traffic exceeds the typical threshold.
This module gives you power over your backend admin toolbar. So if you want to change what links or actions are included in the toolbar, if you want to customize the shortcuts, or if you want to disable it altogether, you can do so here.
If you've ever wanted to create a guided tour or insert tooltips on your website, this module will allow you to set that up.
This module provides a rundown of the latest content submissions to your website and also tracks user activity in terms of content creation.
If you want to translate certain pages or pieces of content on your website into other languages, you'll use this module to do so.
When a user wants a certain action (see Actions module above) to take place after a task is completed (like a new user added, a post deleted, or a comment submitted), they need to set a Trigger module to define it.
This update manager is where you'll be notified of new versions of site software, modules, as well as themes. You can also add, install, and deinstall modules and themes from this module's panel.
If you want to be able to upload any type of file to your website, this module needs to be activated.
For websites with multiple users, this module gives you the ability to set those users up, grant them specific access privileges, revoke their access, and assign them roles. Users can then, in turn, use this module to manage their profile and login information.
Any time you want to share certain pieces of content from your website with users, you'll need to use this module. This will allow you to create lists, galleries, blocks, posts, and more from this content.
By enabling this module, you're giving external applications the ability to read and update content on your website using XML-RPC (see the Blog API module above).
Use Modules on Your Next Drupal Site
Once you know how to use Drupal'and know how to make use of its modules'you can get a lot more out of this powerful content management system than you might expect.
Further Reading and Resources
We have more guides, tutorials, and infographics related to website development and management:
- How to Make a Website: take a step back and determine the best way to set up a website. There are options beside CMSs.
- Google Rankings: Understand, Diagnose, and Fix: what good is a website if no one knows about it? Learn all about getting the Google ranking you deserve.
- The Ultimate List of Webmaster Tools A-Z: find all the tools you need to make managing your site easy.
Ultimate Guide to Web Hosting
Check out our Ultimate Guide to Web Hosting. It will explain everything you need to know in order to make an informed choice.