Simplify
Simplifies the Drupal administrative user interface by hiding particular form fields from content editors.
simplify
Install
composer require 'drupal/simplify:^2.2'
Overview
Simplify is a user interface simplification module that allows administrators to hide specific form fields from content editing forms. This helps reduce visual clutter and confusion for content editors who don't need access to advanced options.
The module supports hiding fields on nodes, users, comments, taxonomy terms, and blocks. Configuration can be applied globally (affecting all forms of a type) or per-entity-type (e.g., per content type, per vocabulary). Fields are hidden using CSS (visually-hidden class), maintaining form functionality while reducing visual complexity.
Simplify integrates with many popular contributed modules including Domain Access, Metatag, Redirect, XML Sitemap, and more, allowing those modules' fields to be hidden as well.
Features
- Hide form fields globally across all node, user, comment, taxonomy term, and block forms
- Configure per-entity-type field hiding (per content type, per comment type, per vocabulary, per block type)
- Support for core fields: authoring information, text format selection, promotion options, revision information, book outline, comment settings, menu settings, URL path settings, and content translation
- Integration with contributed modules: Domain Access, Entity Translation, Metatag, Node Noindex, Redirect, and XML Sitemap
- Permission-based access control allowing specific users to always see hidden fields
- Option to hide fields even from admin users who normally bypass permissions
- Extensible API via hooks for adding custom fields and customizing hide behavior
Use Cases
Simplifying content editor experience
A news website wants content editors to focus only on writing articles without being distracted by technical options. The administrator can hide Revision information, Promotion options, URL path settings, and Meta tags globally for all article content types. Editors see only essential fields (title, body, images) while developers and administrators retain full access via the 'View hidden fields' permission.
Per-content-type simplification
A corporate site has multiple content types: Blog posts (simple, for marketing team), Products (complex, for product managers), and Landing pages (complex, for developers). Using per-content-type settings, the administrator can hide most fields from Blog post forms while keeping all fields visible for Products and Landing pages.
Hiding text format selection
A site uses a single text format for all content and doesn't want editors to change it. The administrator enables 'Text format selection' hiding globally, removing the format dropdown from all text areas across nodes, comments, taxonomy terms, and blocks.
Multi-domain site simplification
A site uses Domain Access module but most editors should only publish to their assigned domain without seeing domain selection fields. The administrator hides 'Domain access' fields globally, while site administrators with 'View hidden fields' permission can still manage domain assignments.
Streamlining taxonomy management
A site with many vocabularies wants to hide the Relations field (parent term selection) for flat taxonomies while keeping it visible for hierarchical ones. Using per-vocabulary settings, the administrator configures each vocabulary independently.
Tips
- Fields are hidden using the CSS 'visually-hidden' class, not by removing them from the form. This maintains form functionality while hiding visual elements.
- Global settings and per-entity-type settings are cumulative - fields hidden globally are always hidden, and per-type settings add additional hidden fields.
- When configuring per-entity-type settings (e.g., on a content type edit form), fields that are already hidden globally appear as disabled checkboxes.
- The module ensures its form alterations run last by implementing hook_module_implements_alter, preventing other modules from overriding the hide behavior.
- Use the 'Hide fields from admin users' option carefully - it overrides Drupal's default permission behavior and affects User 1.
- To extend Simplify for custom modules, use hook_simplify_get_fields_alter to add fields and hook_simplify_hide_field_alter to customize hiding behavior.
Technical Details
Admin Pages 1
/admin/config/user-interface/simplify
Main administration page for configuring global field hiding settings. This page allows administrators to select which form fields should be hidden across all forms of each entity type (nodes, users, comments, taxonomy terms, blocks, and profiles).
Permissions 2
Hooks 2
hook_simplify_get_fields_alter
Allows other modules to add custom fields to the list of hideable fields. This hook is called when building the checkbox options for Simplify configuration forms.
hook_simplify_hide_field_alter
Allows other modules to customize how specific fields are hidden. Called after the default hide logic is applied to each field.
Troubleshooting 4
By default, User 1 and users with admin roles have all permissions including 'View hidden fields'. To hide fields from admin users, enable the 'Hide fields from admin users' checkbox on the Simplify administration page.
Some fields only appear when their associated module is enabled. For example, 'Book outline' requires the Book module, 'Menu settings' requires Menu UI module. Enable the required module and the option will appear.
Check that the fields you're trying to hide aren't already hidden globally. Globally hidden fields appear as disabled checkboxes on per-type settings forms. To configure per-type hiding, first remove the global setting.
Ensure the user doesn't have the 'View hidden fields' permission. Also check if there are conflicting modules or themes that might be overriding the visually-hidden CSS class.
Security Notes 4
- Simplify hides fields visually but does not remove them from the form or prevent form submission with those values. It is a UI simplification tool, not a security access control mechanism.
- Fields hidden by Simplify can still be accessed programmatically and may be manipulated by users with technical knowledge inspecting the page source.
- For true access control to sensitive fields, use Drupal's Field Permissions module or implement custom access logic.
- The 'View hidden fields' permission should be granted carefully as it completely bypasses all Simplify hiding.