Drupal: Maintenance Node

Drupal has somewhat limited options, when it comes to displaying information during site maintenance. By default admins may enter a simple maintenance message. Most of the times this is just enough, but sometimes you want to be able to make the maintenance page look more appealing. For this reason I developed a Maintenance Node module.

This module enables admins to select a node to display, instead of the default maintenance message. In fact the selected node will be rendered and replace the message text in the maintenance page template. So there are no further changes necessary, the module works right out of the box. The module has been originally developed for a customer of my employer labor b designb├╝ro.

How to use the module

Let me walk you through the setup of this module step by step. First of all you will need to download and install the module, but this should be a matter of course. You can find the download link at the bottom of this article.

1. Create a node

A new node for the Maintenance Node module.
A new node for the Maintenance Node module.

First you will need to create a node. You can use an existing one, but for the sake of this example I will create a new one. There are no restrictions on the type of node the module can use. But the node needs to be published. Please note that the module does not take other access restrictions into account.

2. Select this node in the maintenance form

Now go to the "Maintenance mode" settings page in your Drupal installation. You will see a select below the maintenance message text area. Use this this select to select the previously created node.

After storing the new settings, you will notice that the message field has been disabled. This is meant to be an indication, that it is no longer in use. Instead the selected node will be used.

3. Enable maintenance mode

To check if your node is actually displayed, you can enable the maintenance mode. Now log out and check your website again. Instead of the plain message text, the node has been rendered. The module actually respects the currently active language and renders the correct translation.

Update 14.01.2018

As the original download link of this module didn't work any more, I decided to upload the module on Github for documentary purposes only. You can view and download the source code here.