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 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.

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:

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

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.

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 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.

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.

Tags

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.

Tags

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.

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.

Tags

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.

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.

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.

Tags

Collaboration tool for SEO on blog posts, social posts, and multichannel distribution. Sounds promising, but requires a subscription to the StoryChief web app.

Tags

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.

Tags

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.

Tags

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.

Tags

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.