Monster Menus (MM) has been actively developed by Amherst College since 2006. This project contains Drupal 6 and Drupal 7 versions. The D6 version is now maintenance-only, and will only receive bug fixes.


  • Monster Menus groups contents (nodes) into containers (what we call pages). Each page has its own entry in a hierachical tree represented by a unique URL.
  • Each page can have its own permissions, and its location in the tree affects how those permissions are inherited and applied. In order to read a child page several levels down the tree, the user must also be able to read each of the parent pages. This is similar to the way the Unix filesystem works.
  • Pieces of content (nodes) can appear on multiple pages, so that one need not enter the same content in multiple places. Contents and/or portions of the tree can be copied or moved easily.
  • Pages can become Drupal blocks, which include inheritance. So, if you want to add a list of important phone numbers for a particular department, you can do this by assigning a sub-page to a particular block; then, all child pages of the department will include this same list automatically. Because this list is stored on a sub-page, it can be edited directly within Drupal, by anyone to whom permission is given--no longer do the users have to wait for an administrator to edit a template file.
  • Any portion of the menu tree, itself, can be shown in an indented list, for navigation. The administrator is given control over the depth of the menu, as well as its starting point.
  • Appearance themes can be applied to any section of the tree, and changed by any user who has the ability to edit the higher-level page. A number of other page attributes use this same cascading approach.
  • The list of available themes and content types can also be restricted, based on the tree structure. For example, one could limit the Athletics department to using one particular theme, and only being able to create Article and Sports Score contents.
  • Individual pieces of content can be set to appear based on calendar date/time. Content can be reordered on the page. It can also be automatically archived by date, as in a blog.
  • Permission groups are, themselves, organized in a tree structure. An unlimited number of groups can be defined.
  • The ability to edit permission groups can be delegated, using permission groups. So, for example, the secretary in the History department can add users to the History group, but not any others.
  • Groups are normally unrelated to Drupal roles. On our site, we have over 14,000 groups. Representing this in the roles UI would be impractical. If desired, however, membership in a Drupal role can be tied to a Monster Menus group.
  • One section of the groups tree defines "virtual groups". Membership in a virtual group is defined by an adminstrator when he creates a SQL statement that returns data from some table--any table--within Drupal's database. This allows sites to periodically import data into tables that are normally outside of Drupal's schema, and then have the virtual group's membership updated automatically. We use virtual groups for things like, "All users in the class of 1975," and "All users taking Chem 101 in the Fall of 2012."
  • Deleted pages and contents are placed into recoverable recycle bins prior to actual deletion.
  • Optionally, each user is given their own home page space, which is automatically created the first time they log in. The list of user homepages is browsable and searchable, and optionally grouped by letter, A-Z.
  • Multiple sites, using multiple domain names, can be managed using a single set of permissions. Content can be shared across sites.
  • Monster Menus includes an API that makes it highly extendable.

To try out the test site (which runs under Drupal 7), click on the link to the right. Enter the username test and password tester when prompted.


  • jquery_ui
  • MySQL 5.x or MariaDB is required.
  • (Optional) If present, the Date Popup portion of the Date module will be used when entering publication start/end dates and times.
  • (Optional) In Drupal 6, enhanced tooltips are supported using the over_text module. This module is not actively supported by its author, so we have updated it in-house to work with Drupal 6. If you would like a copy of our mods, let us know. Without this module, basic, browser-based tooltips are used.
  • (Optional) In Drupal 7, enhanced tooltips are supported using the qtip module.
  • Several optional sub-modules are included with Monster Menus and described in this documentation. While these are all optional, it is highly recommended that you run the Monster Menus Media module. This module extends Monster menus permissions to files. Without this, files added to the site will be world-readable.


  1. Before installing Monster Menus, it is highly recommended that you enable the "Clean URLs" option in admin/settings/clean-urls.
  2. Copy the monster_menus directory to your sites/SITENAME/modules or sites/all/modules directory.
  3. (Drupal 6 only) Apply the following patch to modules/node/node.module
    --- modules/node/node.module	2011-03-21 14:43:11.000000000 -0400
    +++ modules/node/node.module	2011-03-21 14:44:16.000000000 -0400
    @@ -2047,6 +2047,13 @@ function node_access($op, $node, $accoun
       if (!is_null($access)) {
         return $access;
    +  // Consider the Monster Menus permissions of this node
    +  $access = node_invoke_nodeapi($node, 'access', $op, $account);
    +  foreach($access as $bool) {
    +    if (is_bool($bool)) {
    +      return $bool;
    +    }
    +  }
       // If the module did not override the access rights, use those set in the
       // node_access table.

    This allows Monster menus to determine whether to show the page settings menu to the current user and also whether to display a file to the current user provided the Monster Menus Media module is also installed. This patch is not required for Drupal 7 or newer.

  4. Enable the module and configure admin/settings/mm.
  5. The block "New Sub-section" will be available in admin/build/block. This is the Monster Menus navigation block and should be added to a region on the page.

Status of Drupal 8 Version

Monster Menus is being actively ported to D8. Releases will be available below when the project is stable. The current development version can be found in the git repository.

Project information