Hy,

i want to ser the site in maintenance mode BUT allow still some pages. Can i easely add some "allowed" pages to a list and done?

Comments

Jaypan’s picture

This functionality does not appear in core. There may be a contributed module that allows for this, but I've never seen one myself. Searching the modules (http://www.drupal.org/project/modules) is probably your best bet, if such a module exists.


The Drupal organization has shut down discussion on improvement of the forums: https://www.drupal.org/node/2536122

It's time to start a new forum somewhere else. The Drupal organization does not care about the forums.


agualog’s picture

For anyone wondering, you can alter the access to pages in maintenance mode.

From user.module, line ~1800 :

    if (user_is_anonymous()) {
      switch ($path) {
        case 'user':
          // Forward anonymous user to login page.
          drupal_goto('user/login');
          
        case 'foo/bar':
        case 'user/login':
        case 'user/password':
          // Disable offline mode.
          $menu_site_status = MENU_SITE_ONLINE;
          break;
        default:
          if (strpos($path, 'user/reset/') === 0) {
            // Disable offline mode.
            $menu_site_status = MENU_SITE_ONLINE;
          }
          break;
      }
    }

Trying to add "foo/bar", and it worked like a charm. This is a hook of hook_menu_site_status_alter(), passing site status by reference allowing you to dynamically alter access to some pages in maintenance mode.

Writing your own quick module could do the trick in few lines :)

Quick example :

function mymodule_menu_site_status_alter(&$menu_site_status, $path) {
  if ($menu_site_status == MENU_SITE_OFFLINE) { 
if ($path == 'foo/bar') $menu_site_status = MENU_SITE_ONLINE;
}