Monster Menus (MM) has been actively developed by Amherst College since 2006.

Features

  • Monster Menus groups contents (nodes) into containers (what we call pages). Each page has its own entry in a hierarchical 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 block.
  • 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 administrator by creating 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 2022."
  • 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. This removes the need to have dozens (or hundreds) of separate Drupal instances.
  • Monster Menus includes an API that makes it highly extendable.

Requirements

  • MySQL 5.x or MariaDB is required.
  • (Optional) in Drupal 7, if present, the Date Popup portion of the Date module will be used when entering publication start/end dates and times.
  • (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.

Installation

  1. Drupal 7:
    Copy the monster_menus directory to your sites/SITENAME/modules or sites/all/modules directory.
    Drupal 9:
    Use composer, following the instructions found below, accompanying the release.
    Drupal 10:
    Use composer, following the instructions found below, to install version 9.1 or newer.
  2. Enable the module and configure it at /admin/settings/mm.
  3. The block "New Sub-section" will be available in /admin/structure/block. This is the Monster Menus navigation block and should be added to a region on the page.
  4. Groups can be managed at the URI /groups
  5. Various other tasks can be found at /admin/mm

Project information

Releases