Drupal 7 core modules

Kevin Blanco 🥑
ninjadevs
Published in
9 min readFeb 19, 2017
Credit to: AmazeLabs

These modules are always on each Drupal 7 installation, but do you know what they do and what to configure them? Check the following list. Each module name is a link to the module documentation and it has a description, what the admin URLs are for those and what permissions they define (if any), here we go!

Aggregator

Syndicated feed reader (RSS, Atom, RDF)

  • Only fetches from other site, doesn’t syndicate content on your site (use the “Syndicate” block for that)
  • Permission: Administer news feeds (admin)
  • Permission: View news feeds (admin)

Block

  • Permission: Administer blocks (admin)

Blog

  • For multi-user blogging only
  • For single-user blogging, create custom content type instead
  • No Permissions

Book

Tie pages in a hierarchy

  • Provides a book navigation block
  • Provides a ‘Books’ tab on admin/content/book
  • Has printer-friendly links
  • Content Type: Book page
  • Permission: Administer book outlines (admin)
  • Permission: Create new books (admin)
  • Permission: Add content and child pages to books (admin)
  • Permission: View printer-friendly books (admin) — can be performance heavy

Color

For changing color scheme of compatible theme (e.g. Bartik)

  • Locking 2 adjacent color-pickered colors will change each other
  • No Permissions

Comment

For commenting on published content

  • Requires: Text, Field, Field SQL Storage
  • Permission: Administer comments and comment settings (admin)
  • Permission: View comments (anon, auth, admin)
  • Permission: Post comments (auth, admin)
  • Permission: Skip comment approval (auth, admin)
  • Permission: Edit own comment (admin)

Contact

For personal and site-wide contact forms that send emails to users and an arbitrary email address (for site-wide)

  • Create Contact forms at: admin/structure/contact
  • Default Form: Website feedback — view on /contact
  • Permission: Administer contact forms and contact forms settings (admin)
  • Permission: Use the site-wide contact form (admin)
  • Permission: Use users’ personal contact form (admin)

Content translation

This is the older method; should now use Entity Translation, which works with this Content Translation module

  • Requires: Locale module
  • Should first select another language at admin/config/regional/language
  • Then edit the desired content type > on the Publishing Options vertical tab > under Multilingual Support, check “enabled, with translation”
  • Then the node of that content type will have a Language field and a Translate tab
  • Permission: Translate content (admin)

Contextual Links

Displays links related to regions of pages for quick access

  • These links are supplied by modules, e.g. Blocks, Menus
  • Contextual Links module collects these links for the theme, and adds JavaScript to hide links until mouse hovers over the region
  • Element requires the ‘contextual-links-region’ class
  • By default, not available to views with field-based rows
  • Permission: Use contextual links (admin)

Dashboard

Creates a Dashboard page for tracking user and content activity at admin/dashboard

Dashboard page is made up of blocks that can be added/removed, by default it has:

  • Recent content
  • Search form
  • Who’s new
  • Can also add the following blocks:
  • Recent comments
  • Who’s online
  • Requires: Block
  • Permission: View the administrative dashboard (admin)

Database logging

Logs and records system events:

  • Recent log messages — admin/reports/dblog
  • Top ‘page not found’ errors — admin/reports/page-not-found
  • Top ‘access denied’ errors — admin/reports/access-denied
  • Top search phrases — admin/reports/search
  • Good for debugging
  • Usage data, performance data, errors, warnings

Field

  • Internal field API that gives the infrastructure such that other field type modules can add fields to entities

Other field type modules in Core:

  • Number
  • Text
  • List
  • Image
  • File
  • Taxonomy
  • Option
  • Requires: Field SQL Storage module
  • No permissions

Field SQL Storage

Default field storage module for storing fields in database

Field UI

Provides UI for adding and managing fields for entities at the ‘Manage Fields’ tab

  • Machine name and the type of a field cannot be changed after field is created
  • Fields can be reused
  • Saves time over defining new fields
  • Can display/group/sort content by field across content types
  • Labels can be different on other entities using the field
  • Number of values is shared on other entities using the field
  • Don’t reuse fields if require different permissions
  • Requires: Field, Field SQL Storage
  • No permissions

File

Requires: Field, Field SQL Storage

  • Provides the File field type — allows file upload and attachment to an entity
  • Can be listed (auto display below content) or non-listed (embedded)
  • Can specify file uploaded to public or private
  • For public files, only web server access is needed, so anyone with the direct URL can view the file

For private files:

  • When you specify the private directory in admin/config/media/file-system it will automatically create the sub-directory and create a simple .htaccess file with Deny from all. This stops Apache from serving files from this directory.
  • By default, users can access files that are attached and displayed on a node to which they have access to view
  • No permissions

Filter

Documentation: https://www.drupal.org/node/213156

  • Text formats are a series of filters — configured at admin/config/content/formats

Filtered HTML

  • Convert URLs into links
  • Limit allowed HTML tags
  • Convert line breaks into html (<br> or <p>)
  • Correct faulty and chopped off html

Full HTML

  • Same as Filtered HTML but does not allow limited html tags

Plain text

  • Display any html as plain text
  • Convert line breaks into html
  • Convert URLs into links
  • Security implication — should restrict filter access for untrusted users
  • Permission: Administer text formats and filters (admin) — trusted users only
  • Permission: Use the Filtered HTML text format (anon, auth, admin)
  • Permission: Use the Full HTML text format (admin) — trusted users only

Forum

Used for threaded discussions

  • Each Topic contains an initial post (node) followed by replies (node comments)
  • Admin Page: admin/structure/forum
  • Default Forum: General discussion
  • Create a Forum (or a container that groups forums)
  • Forums can embed other forums (child forums)
  • Content Type: Forum Topic
  • Create a Forum Topic node, specify the Forum, and set allow comments for an opened topic
  • Permission: Administer forum (admin)

Help

  • Main Help Page: admin/help
  • Provides help references pages
  • Starting point for the Drupal handbooks (drupal.org/documentation) — see handbook for more info

Image

  • Provides image toolkit — can change desired quality
  • Provides image styles — create copies of original image using effects
  • Thumbnail (100x100)
  • Medium (220x220)
  • Large (480x480)

Effects:

  • Crop
  • Desaturate images
  • Resize
  • Rotate
  • Scale
  • Scale and crop
  • When image styles is edited, Drupal automatically refreshes all created image
  • Provides Image field type — attach image to entity
  • Common ways to name image files:
  • With where it will be used, eg. profile-picture
  • With its appearance, eg. square-85x85
  • Permission: Administer image styles (admin)
  • List (enabled)

Provides the following field types:

  • List — default, no display labels, order matters for data storage
  • Boolean — yes/no, 2 radio buttons or 1 checkbox
  • List (numeric) — use numeric keys, order does not matter for data storage
  • List (text) — use text keys
  • Use with Options to create selection lists
  • No permissions

Locale

Provides multilingual support with:

  • Translation interface at admin/config/regional/translate
  • Import/export language packages in Gettext Portable Object (.po)
  • Drupal.org provides some language packages at https://localize.drupal.org/
  • You can contribute by adding translation to it (can use Local Update module to do so from your site)
  • For right-to-left translation, you’ll need a theme (e.g. Garland) that supports that
  • The user can specify language preference on their My Account page
  • Permission: Administer languages (admin)
  • Permission: Translate interface text (admin)

Menu

Provides menu creation and management

  • Each menu has a corresponding block
  • Must indicate menus desired per content types if you want to add nodes to certain menus
  • Permission: Administer menu and menu items (admin)

Node

Provides node creation, management, revisioning, publishing

Permissions:

Bypass content access control (admin) — view/edit/delete all content regardless of permissions

  • Administer content types (admin)
  • Administer content (admin) — bulk manage site content
  • Access the content overview page (admin) — admin/content
  • View published content (anon, auth, admin)
  • View own unpublished content (admin)
  • View content revisions (admin)
  • Revert content revisions (admin)
  • Delete content revisions (admin)
  • Content Type Permissions:
  • [Content Name]: Create new content (admin)
  • [Content Name]: Edit own content (admin)
  • [Content Name]: Edit any content (admin)
  • [Content Name]: Delete own content (admin)
  • [Content Name]: Delete any content (admin)
  • Number (enabled)
  • Defines numeric field types:
  • Decimal
  • Float
  • Integer
  • No permissions

OpenID

Allows users to login with an OpenID.net username and password

  • Drupal will ask for the user’s OpenID URL (myusername.openidprovider.com), and asked for username/password if not already logged in on OpenID
  • No permissions
  • Options (enabled)
  • Defines selection field widgets for text and numeric fields:
  • check box
  • radio buttons
  • No permissions

Overlay

Uses JavaScript to provide overlay when clicking on an admin link

  • Permission: Access the administrative overlay (admin)

Path

Allows creation of URL aliases (or custom URLs)

  • Not the same as URL redirects
  • Permissions:
  • Administer URL aliases (admin)
  • Create and edit URL aliases (admin)

PHP Filter

Allows users with permissions to create custom PHP code within a page on the site

  • Has high security risks if PHP code is incorrect, malformed, or created by malicious users
  • PHP Filter outputs are not cached by filter or field caches
  • PHP Snippets on Drupal.org
  • Permission: Use PHP for settings (admin)

Poll

Provides a Poll content type

  • Can control which users can vote, see results, and create their own polls
  • Permission: Vote on polls (admin)
  • Permission: Cancel and change own polls (admin)
  • Permission: View details for all polls (admin)

RDF

  • Resource Description Framework in Attributes (RDFa)
  • W3C standard for semantic structured metadata within HTML markup
  • SEO friendly
  • No permissions

Search

Exact keywords searching on content and users

  • Search form block (Region: Sidebar first)
  • Search page: /search (Tabs: Content, Users)
  • Search users by username (Requires permission: View users profiles)
  • Search users by emails (Requires permission: Administer users)
  • Permission: Administer search (admin) — can adjust Search settings at /admin/config/search/settings

Reindex

Index throttle (# items per cron run)

  • Min. word length to index
  • Active and default* search modules (node*, user)
  • Content ranking (influence)
  • Permission: Use search (admin) — can use search box and page /search
  • Permission: Use advanced search (admin) — for advanced options on /search page
  • Select content types
  • Containing any of words
  • Containing phrase
  • Containing none of words

Shortcut

  • Config: admin/config/user-interface/shortcut
  • Shortcut set of links
  • Toolbars module displays the user’s shortcuts at the top along with the “Edit shortcuts” link
  • Shortcuts block (disabled)
  • Users can manage their own shortcut bar
  • Choose shortcut set from user profile’s Shortcuts tab
  • Default set:
  • Find content: /admin/content
  • Add content: /node/add

Permissions:

  • Select any shortcut sets (admin) — choose sets created by anyone
  • Edit current shortcut sets (admin)
  • Administer shortcut sets (admin) — edit any sets

Statistics

Recent hits, top referrer URLs, top page views, top visitors

  • Provides a Popular content block
  • Provides a counter for each page, requires permissions
  • Permission: Administer statistics (admin)
  • Permission: View content access statistics (admin)
  • Permission: View content hits (admin)

Syslog

Sends logs to your web server (a log file)

  • Not suitable for shared hosting environments; used for medium — large sites
  • Syslog is faster than Dblog since it doesn’t write logs into the database
  • No permissions

System

Stores and sends compressed caches of dynamic generated pages

  • Only anonymous user pages are cached
  • Handles regularly scheduled cron jobs of some other core processes (update statistics, pulls aggregator feeds, etc.)

Permission:

  • Administer modules (admin)
  • Administer site configuration (admin)
  • Administer themes (admin)
  • Administer software updates (admin)
  • Administer actions (admin)
  • Use the administration pages and help (admin)
  • Use the site in maintenance mode (admin)
  • View the administration theme (admin)
  • View site reports (admin
  • Block IP addresses

Taxonomy

  • Ways of classifying content
  • Default vocabulary: Tag
  • Guideline: If vocabulary is not well known to all users, keep it below 40 terms.
  • Guideline: Use taxonomy parent/child relationship with caution; consider dividing vocabularies first
  • Guideline: Use views

Permission:

Administer vocabularies and terms (admin)

  • Edit terms in Tags (admin)
  • Delete terms in Tags (admin)

Testing (a.k.a. SimpleTest)

Provides a list of tests, and returns passes, fails, exceptions (PHP warning or notices), and debug messages

Text

  • Provides field types for: Text, Text area, select box, check box, radio buttons
  • No permissions

Toolbar

  • Provides the admin menu with top-level links, and the drawer section for links by other modules (example: links by Shortcuts module)
  • Permission: Use the administration toolbar (admin)

Tracker

  • Displays a View of most recently added and updated content
  • Page: Recent Content Page (/tracker)
  • View: Tracker
  • No permissions

Trigger

  • When a trigger (event) occurs, provide an action
  • Example: When a comment contains a certain word (trigger), unpublish the comment (action)
  • Other modules provide Triggers at /admin/structure/trigger/
  • From Core: Comment, Node, System, Taxonomy, User
  • Provides default Actions; can create advanced actions at /admin/config/system/actions

Trigger Examples:

  • Deleting content
  • Adding comment
  • User logging in
  • Running cron

Action Examples:

  • Send email
  • Publish/unpublish node, comment, terms
  • Ban user IP
  • Promote to front page
  • No permissions

Update manager

  • Periodically checks your site for new versions of modules and themes from Drupal.org
  • Anonymous usage statistics (unique key with list of software versions) are sent to Drupal.org
  • Admin Page: Available Updates page (admin/reports/updates)
  • Admin Page: Install Page (admin/reports/updates/install)
  • System Permission: administer software updates — Can perform update in the UI

User

  • Allows users to register, log in, and log out
  • A visitor of the site is assigned a session ID, stored in a cookie (without any personal info)

Provides user roles:

  • Anonymous
  • Authenticated
  • Administrator

Page:

  • My Account page per user (/user)

Admin Page:

  • People administration (admin/people)
  • List, create, block, delete, assign roles to users
  • List, create, add, delete roles
  • List, create, add, delete permissions

Admin Page: Accounts Settings (admin/config/people/accounts)

  • Registration/cancellation settings, user profile settings (signatures, pictures), email settings

Permission:

  • Administer permissions (admin)
  • Administer users (admin)
  • View user profiles (admin)
  • Change own username (admin)
  • Cancel own user account (admin)
  • Select method for cancelling own account (admin)

I hope this list help you understand what each modules does and how they behave.

Go and Drupal now!

--

--

Kevin Blanco 🥑
ninjadevs

Senior DevRel Advocate 🥑 at Appsmith, Certified Google Expert Advocate, Private Pilot