What do the Various Module Run Levels Mean

If I navigate to the Modules -> Manage Modules section in the admin UI, there's two module columns named Level, and Run Level. It's not 100% clear to a newcomers what the effect of these values are on the system's functionality.

Specifically: While the meaning of DISABLED, is pretty clear (don't load the module), what's the difference between the various run levels of REQUIRED, REQUESTED, and ONDEMAND?

Additionally, why the two different columns (Level and Run Level) for run levels?

1 Answer


Run Levels:

  • ONDEMAND: Load this module only when required by another module
  • REQUESTED: Attempt to load the module, and silently ignore (*), if dependencies are not met.
  • REQUIRED: Attempt to load the module, and fail, if dependencies are not met.
  • DISABLED: Do not allow the module to be loaded

Grid columns:

  • "Level": current value of module run level
  • "Run Level (Core)": value as taken from configuration file

In early versions the run level was inline editable, and there were also columns for "Run Level (Admin)" and "Run Level (Frontend)", to control module subsets for different areas. These became unnecessary with framework progression, and were removed, although the functionality is still available.

(*) Silently ignore: depending on notification levels, the alert can be shown in page, sent to memory log, file log, or emailed to administrator.