Useful Drupal modules
This is my working list of useful Drupal 8 modules as I find out about them. It's mainly a reference for myself and includes reminders/advice based on my experience of using each module. (I also mention bugs, but don't let that put you off testing the modules yourself.)
At the bottom of the page I've linked to useful blogs and a longer auto-generated list.
|Name||My notes||D8||Tested||Last Checked|
|AddToAny Share Buttons||
Nice, clean, SVG sharing buttons. Project page says it's specifically optimised for Drupal.
|Advanced Page Expiration||
I would avoid this. The idea is you enter URL paths with wildcards and override the cache expiration. I was unable to get it to work properly for pages (settings on config under Development > Performance) Also, re: caching images, those are files being served directly by Apache or Nginx, not via the Drupal front-controller, so caching settings need to be configured there.
Integrates with Amazon Echo. Allows Drupal to respond to Alexa skills requests. See Dries' blog with video demo.
Autofocuses the first field of form (forms can be specified). No sign of a D8 port.
You can hide a node's title field (for reference, every node has to have a title) and generate it automatically, similar to pathauto. No-one's porting this to D8 yet.
Saves snapshot of content type form using AJAX. Content types and save frequency can be configured. No sign of a D8 port yet.
In Core (was experimental) from 8.3.0.
|Block Visibility Groups||
Rather than change visibility for individual blocks, you can group them together and assign complex visibility settings to all of them. Module page promotes it as a simpler alternative to Panels.
Keyboard shortcuts. A bit like Spotlight/Alfred/Launchbar. Alt+D to launch (memonic: alt + D = coffee!) Handy as it doesn't clash with browser keyboard-shortcut extensions such as Vimium.
Lock all configuration changes via the admin UI - e.g. if you need to lockdown a production environment.
Lets you view messages sent via the contact form. It's in a (late) beta in D8, maintainers want to move it into core. May be useful considering From: address SPF/DMARC problem with contact forms.
Build a custom list of nodes. The setup is via Admin > Structure. Currently D8 alpha.
|Exclude Node Title||
There are situations where you will want to hide a node title - e.g. if you have a view and insert an image field that's an entity reference to another content type. Module allows you to hide titles by content type or view mode and for all nodes or just a custom selection. Beta in D8.
Package up selected configuration for "features" (e.g. a blog or a photo gallery etc.) for reuse on other sites. Not the same as the new D8 Config sync, which is for exchanging configs between different environments of the same site and requires a cloned DB sharing the same UUIDs.
Allows you to group a set of fields together. In active development for D8 but still a lot of open bugs at time of writing - project page says it will likely be replaced by Paragraphs.
Control editing/visibility of individual fields by role. There's a generic "private" setting, for the author + administrators, but you can set custom permissions per role for 'create own', 'edit own', 'view own', 'edit any' and 'view any'. These are automatically applied to views, for example. Note: the setting you're looking for is Field visibility and permissions – it's on the Edit tab, NOT Field Settings.
Provides a more detailed field list (under Reports) with individual instances. You can also copy fields, form and view displays to other bundles.
Handle favourites, reading lists, spam, friend lists etc. Can be applied to any entity (nodes, users, comments etc.) It appears as a clickable link. Can choose between page reload and AJAX when user toggles it. Linked with views, and you can trigger events when flag count reaches a threshold.
Add Next/previous links to node view for specific content types - e.g. image gallery. Powerful - supports: next/last, random link, you can specify exact text used etc. Currently a dev version in D8.
Setup: activate for a content type in the 'Edit' tab (NOT manage display). Once Flippy is active, Manage Display tab will have a pager field so you can reposition the links relative to other fields on the page (e.g. above or below image).
Protect against brute-force login attacks. Unclear what's happening with porting of this.
Alternative to the Organic Groups module. Allows you to create groups - e.g. classes, subscriptions, multiple communities. Drupal module of the week post. Blog post. It is by all accounts solidly written, but I found the initial UI confusing (in a "so what do I do now?" way) - you probably need to watch the YouTube video to understand it.
Hours/minutes/seconds field type (formats: h:mm, h:mm:ss, m:ss, h, m or s). Drupal 8 in beta.
Images are hidden until they scroll into view. Can specify distance before loading is triggered, also placeholder image, loading GIF and any pages to be excluded. There's been some Drupal 8 development but unclear how complete it is.
Adds a file browser to the CKEditor link dialog, so you can select files that have already been uploaded. Settings in Admin > Config > Media. In many cases will be better IA to add a dedicate file field to the content type and use that, or wait for the new media browser (currently being designed, follow the Drupal UX group.)
Allows you to browse the site as another user (to see what they see) and then quickly switch back again. A general Drupal recommendation is to create test accounts for each of your roles, so this is useful for testing them. (As per notes, don't use it for anonymous access, just log out.) Replacement for 'Switch User'.