Allows a site builder to build a view whose results will be automatically filtered to a taxonomy term set in the visitor's profile.
Modules of Interest
This is meant to be a collection of modules I find interesting. Some may be created by me, and where's that's true you should see them tagged with mandclu
. Is there any particular value for the outside world to be able to browse this collection? Probably not, I just wanted a place to collect and categorize modules. And here you are.
Views Flag Refresh allows site administrators to configure which views are refreshed automatically via AJAX when certain flags are selected. This is useful when you have a view that filters by flagged content and you want the view to be refreshed automatically when content is flagged or unflagged elsewhere on the page.
This module implements a new cache context, based on the value of a reference field on the current user. To use this new cache context in your own module, after installing this module add a cache content like user.ref_field:field_foo
where field_foo
is the machine name of the reference field (e.g.
This modules add extra config to fields that allows you to configure the initial number of items to display for unlimited and multi-values (with cardinality bigger than 1) fields.
Provides tokens ([entity_type:render:view_mode_name]
) that render full entities using view mode specified.
This module is a Configuration Kit that provides a system for managing user-specific tasks. On first install the system is simple by design, but the tasks are stored as Storage Entities so you're free to modify and add fields as needed to suit the specific needs of your site: due dates, ticket IDs, a "task type" taxonomy reference, and so on.
This module adds a new field, widget and formatter, which allows .svg
file extension to be uploaded.
A new entity type for managing data that should be stored in the database, but only displayed within or associated with other content. If you're using a solution like Rabbit Hole to prevent direct access to an entire content type, that content might be better stored as storage entities.
This module provides a method for users with the necessary permissions to manually override the results being returned by Search API Solr. They will be able to choose a specific search term, and pick which nodes should be at the top, and also choose to exclude nodes so they will not be shown in the results.
Enables the recording and presentation of statistics for the Search API module. There are plans to implement usage and performance statistics in the near future. For now this module gives your Drupal site a top search phrases block for all the Search API indices on your site.
This module allows a site to boost Solr query results where the content has a taxonomy term reference that matches a selection in a field on the current user. For example, if your site had a taxonomy for animals, and a user had set their favourite animal as "elephant" in their user profile, the module would cause content tagged with "elephant" to appear higher in the search results.
This is a configuration-only module that creates a system for managing links with SVG icons, designed to be shown in a block on the home page. They are saved as Storage Entities to reduce clutter in the content system, and can be managed directly from the home page, within the settings tray (see screen captures).
This module provides a ready-to-use set of configuration for displaying Person nodes on your website, for example in a staff directory, faculty list, or list of physicians. The Auto Entity Label module is leveraged so editors only need to provide first and last names, and will be combined into a title for the node.
The Multiselect module defines a field widget to be used with the following fields types: List fields (text, float, or integer) or entity reference fields. It allows the user to select multiple items in an easy way. It consists of two lists, one of all available items, the other of selected items. The user can select an item by moving it from the unselected list to the selected list.
This module allows you to add a target to link fields. You can configure the link target per link if you select the appropriate field widget in the field settings.
Provides a new layout to use as a section within layout builder. Any block added will have its title shown as a tab in the tab set, and clicking a tab will reveal the content for the appropriate block.
Significant work has gone into making sure the generated tabs markup will be accessible.
In Drupal 8 and newer, you can create form modes which control how the fields are displayed in the edit form of content such as nodes and taxonomy terms.
The "issue" is that you can't actually make use of those form modes from config except for user register and edit forms.
This module allows you:
Force Users Logout module allows administrator to quickly force logout or delete session of any user(s).
This module gives three options
Provides a form (with an associated permission) to allow a site administrator to assign a flag to another user for a specific piece of content.
The Event Platform is actually a set of modules, each of which provides functionality designed to satisfy the needs of anyone creating a site for a Drupal Camp or similar event.
This module lets you visualize the Entity structure of your Drupal 8 site using an Entity Relationship Diagram (ERD).
While this isn't meant to be a fully functional tool to build new ERDs, it is meant to be used as a functional learning tool for developers and site builders.
Drift is the easiest way to add free live chat to your site, and start on your path to conversational marketing.
This module adds to the functionality of core's display_link views header / footer plugin in a number of ways:
A more configurable version of the navigation block provided by the Book module in core. The options provided include:
- Choose to show only a single book (or default to show all, as in core)
- Choose a maximum depth to create the menu
- Force the menu to be expanded
This module allows editors to move content to a different workflow state by accessing a specially crafted URL, for example:
https://mydomain.com/content-moderation-link/process/in_review/node/108,109
This module provides a table for content administrators to quickly review all content of a specific content entity type (e.g. node, taxonomy term, etc) and bundle (content type, vocabulary, etc).
This module integrates the Ckeditor templates plugin.
It provides a dialog to offer predefined content templates - with page layout, text formatting and styles. Thus, end users can easily insert pre-defined snippets of html in CKEditor fields.
Adds a CKeditor button to insert details elements within content, which can be nested. JavaScript is adapted from original code by Ayhan Akilli.
Provides a button in CKEditor which, when clicked, will run the HTML_CodeSniffer Accessibility Auditor on the source code of the content currently in the editor.
When installed this module now creates a new content type (Alert), a related taxonomy vocabulary (Alert Severity), and a view for display the alerts. The module will automatically create three severity levels.
This module improves on core's "Empty Node Frontpage behavior" area plugin (used in headers and footers) when used on views that show a restrictive set of content types (e.g. one or two) by allowing a site builder to add links that point directly to one or more forms to add content, of a specific content type. You can also specify a class, for example to format as a button.
A small integration module to allow projects using Acquia Site Studio to use the Gin administration theme.
If you're using Site Studio as part of Acquia CMS, you may also want to use Acquia CMS Toolbar Gin, which improves the look of the secondary toolbar with Gin.
Improves the look of the secondary toolbar when using Acquia CMS with the Gin Admin Theme.
When using media to add images to content, having media view modes defined by aspect ratio, combined with a bunch of different image styles for the images in that specific aspect ratio seems to solve the responsive images problem in a pretty easy way.
Provides Drupal integration for the CKEditor Leaflet plugin.
Provides a Leaflet-based map view to display a site's Place nodes, as an alternative to paid solutions like Google Maps. In addition to being free, Leaflet can be extended in a variety of ways, including with the Leaflet More Maps module.
Provides options for adding a link to your date output. An example use would be linking to your group's meetup page to RSVP, or directing users to a registration webform. By default links will only be added to upcoming events, but this module can be configured to add its links to all events.
This module leverages the Date Augmenter API to allow content to be associated with Individual values in a multivalued or recurring date field. Although designed to work with Smart Date, this functionality can be used with any field supported by a compatible date formatter, which includes core date fields.
This module provides links to add an event to a calendar, without relying on external dependencies or libraries. This module leverages the Date Augmenter API to provide a plugin that will add these links to another formatter, instead of forcing you to choose a formatter that only adds add to calendar links.
This module provides an API for modules to provide plugins that will add to or change the output of supported processors such as in Smart Date 3.4.x or newer. Currently available plugins for this API include:
Proof of concept for using Smart Date with Drupal Commerce to allow registration. This module will define a product type for listing events. If only using this system for free events, you can update the form display to remove the price and potentially the sku fields, and you will likely want to implement a simplified checkout process.
Installs a preconfigured view to use Smart Date values in a Fullcalendar View. Extends on and requires Smart Date Starter Kit, which provides an Event content type and related listing view.
Creates an Event content type and a related Events view, with tabs to show upcoming and past events. This module helps new users get started using Smart Date, and also provides value as a "known good" set of views configuration.
Provides a variety of features to improve Drupal's handling of dates and times: A more intuitive widget, intelligent formatting, all-day and zero-duration events, recurring dates, and more. Also extensible using the Date Augmenter API.
Adds a tab to nodes that allows a quick preview of the node's representation as JSON:API. If using this with a Chrome browser, the formatting can be improved using the JSONVue extension, with the option enabled to format contents in frames.
This module allows multiple methods to simplify the use case of needing to add multiple content entries of the same type. In the same way that the taxonomy term creation interface loads the form to create a new term by default when a new term is created, this module provides a button to allow a content creator to immediately see a new form once the content they're working on is saved.
Could you configure your view to use overridden output to show fields within a details element? Sure, but that kind of layout in configuration can be less intuitive to maintain over time.
Provides a field output formatter that can be configured to hide output that goes beyond a configurable height, with options for how the user can expand the field to see the full content.
A former boss used to say, "The surest way to starve a dog is to put two people in charge of feeding it." If people aren't individually accountable, they often assume someone else will take care of a given task. A potential challenge with the powerful workflow capabilities in Drupal core is that they don't make anyone individually accountable.
Allows core REST endpoints to return data in XLS format, views to output XLS data via a "REST Export" or Data Export view, and provides an API to use XLS as a format when using the Serialization API.
Another module that checks for unique values, but this one optionally can run an AJAX validation on blur, so the editor can see any problems before trying to submit the form. Also has support for link fields.
I love the concept of this module. For your content types you can define rules for checking that content is unique, each rule checking a field or a combination of fields.
Provides a flexible system for users to rate content. A single piece of content can have multiple widgets, and a number of different widgets are available out of the box. Offers a customizable results summary, and can use the Charts module for reporting.
This module is different from Message Digest in a couple of ways:
Being able to send email notifications from a Drupal site is great, but sometime the result can be a lot of noise in an administrator or editor's inbox. Message Digest allows for notifications to be sent on a fixed cadence (e.g. daily or weekly) compiling together all the notifications for the period.
Performs static site analysis to generate a detailed report with actionable best practice recommendations across a variety of concerns, including security, performance, database size and complexity, and more.
Similar to Restrict Login or Role Access by IP Address, but allows for path-based restrictions by IP, and other sophisticated rules.
Create IP-based restrictions on the ability to login, either universally or specifically for individual roles.
Ban IP addresses of anyone who requests a URL that matches a configurable set of rules, e.g. Wordpress login path, IIS admin path, etc.
Provides a personalization toolset that can do some simple conditional display of content, primarily using Smart Blocks. Also has integrations for a variety data handling capabilities including dataLayer objects, UTM code handling, and integration with subscription-based services that can inject more sophisticated algorithms, like Demandbase or 6sense.
Provides real-time feedback on keyword optimization and other SEO considerations to content authors and editors.
Collaboration tool for SEO on blog posts, social posts, and multichannel distribution. Sounds promising, but requires a subscription to the StoryChief web app.
Allows administrators to inject CSS and JS into the page output based on configurable rules. Useful if site admins want a way to add a front end library to one or more specific pages, without having to deploy code changes to the theme.
Machine Learning is something I've been interested in for a while, especially since seeing a presentation about it at DrupalCon Baltimore. This module, and its capability-specific companion modules give us a hint at the sophisticated ways advanced computing can help reduce the load on content authors in increasingly sophisticated content delivery workflows.
This module is designed to help Drupal sites share content entities: nodes, taxonomy terms, media entities, and more. Sounds like a budget version of Acquia Content Hub, would be interesting to try.
By default Drupal provides "created on" and "last updated" dates for any content, but this module provides a third date, for when a piece of content was published. Often this is the date that should be displayed on news, press releases, etc.
Sometimes your site needs a more complex workflow than the linear state-to-state options possible using the Content Moderation built into Drupal core. This module allows for conditional logic and a variety of different actions that can be triggered, including the ability to add custom ones to meet your needs.
Sometimes the revision log message can be very useful in the Drupal edit interface, but sometimes you want to keep things as simple as possible. This module provides a variety of potential approaches for either hiding the field completely, or making it available selectively. A nice way to make Drupal's edit interface more intuitive.
If your editors regularly run into issues where multiple users are trying to edit the same piece of content, this module allows for a content item to be "checked out", preventing other users from working on it at the same time. There's also a discrete permission to break the lock on content, in case a high priority update needs to get published.
If I had found this module sooner, it would have saved me significant effort on a number of site builds. I've written custom modules specifically to create custom blocks that could be managed as config, which is exactly the problem that module solves.
Traditionally headless sites have to use a specialized search service like Algolia. This module allows a headless application to query your Solr index through Drupal using JSON:API.
I also looked at SolREST, but I'm not sure I like the idea of bypassing Search API, or the fact that it only has a dev release as of this writing.
Designed to prevent the creation of duplicate content, Allow Only One allows a site builder to specify criteria, using one or multiple fields, that will be used to validate that a piece of content is unique.
Sometimes, as part of the publishing workflow, you want to get feedback from people who don't need to access the backend of your website often enough that it makes sense for them to have their own user account. For these kinds of scenarios, where you need "one off" access to unpublished content, the Access Unpublished module is a terrific solution.