In the previous chapter we learned how to create content, the mainstay of the Drupal website. Creating content can be accomplished using a simple build-in process. Drupal is fully usable out-of-the-box as a content management without the requirement of any customization. However, your site or business model can call for additional functionality. Perhaps you want to schedule events, or accept payments, or display a product catalog. For this reason, there is a galaxy of add-on features available that can be greatly increase its utility and flexibility.
Perhaps you have added functionality to your browser by way of a browser plugin, or to your smartphone by way of an app. With Drupal, feature expansion is also accomplished by pieces of add-on code, called modules. A module is arranged in a folder that contains program code and other files that, when placed in the correct location within the Drupal folder, provide a feature or service above and beyond those included with Drupal. As is the case with Drupal itself, modules are open source and free of charge, though some serve the purpose of connecting Drupal to a paid, third-party service.
Modules come from one of three sources:
- Core: Included with Drupal, sometimes being optional to use
- Contributed: Not part of the core Drupal package, but typically made available from Drupal's module library at https://drupal.org/project/project_module
- Custom: Typically developed specifically for the site on which the module is used
The modules cover a cornucopia of categories, features, and services, from social media integration to image editing and appointment scheduling. This chapter explores a few of the more popular modules that extend Drupal's usefulness for users focused on content. Custom modules are not within the scope of this book. The modules that we will use and look at in this chapter are as follows:
- Pathauto (contributed, but included with Drupal): Automatically generates URI/path aliases for content based on rules created by you
- Paragraphs (contributed): Provides an easy way to add pre-formatted pieces of content to your larger content
- Content moderation (core): Facilitates a process for approving content before it can be published