Drupal 7 core modules
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
- Primary field info stored in database tables “field_config” and “field_config_instance” (https://www.drupal.org/documentation/modules/field-ui)
- Requires: Field
- No permissions
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
- Creates a new Drupal install and virtual web browser to run tests; only default Core modules are enabled; no configuration is set on the default tests: https://www.drupal.org/simpletest-tutorial-drupal7
- Permission: Administer tests (admin)
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.