Reference of properties in a module's description file, description.yaml

Each module contains a file called description.yaml. This contains information about the module.

This section of the site describes the schema of the description.yaml file.

How the description.yaml file is used

Zenario will read a site's description.yaml file, and cache it for future reference, at the following times:

  • When an administrator clicks "Start module" in the Modules panel in Organizer
  • When a revision number of the module's latest_revision_number.php file is increased, and an administrator logs in and applies database updates.

If you edit your description.yaml file, you MUST increment your module's revision number up by one so that Zenario will read in the change.

The description file contains information such as:

  • general information such as name and license information
  • dependencies on other modules
  • whether and how it can be used as a plugin (i.e. appears on a visitor-facing web page)
  • how it may interact with other modules (e.g. sending signals when it takes an action).

Dependencies

If your module extents another module, or needs a feature from another module in order to run, you should state that module's name as a dependency.

Zenario will not allow your module to be started unless all of the modules named as dependencies are also running.

When Zenario runs a module's code, it will always first look for modules that are depended upon, and run them first. For example, if module B depends on module A, A will be run first, and then B.

In Zenario, the module zenario_menu_vertical extends the code of the module zenario_menu, so zenario_menu_vertical lists zenario_menu as a dependency.

A different case would be where a module calls a public static function from another module. If the module relies on this function call to work, then this would be a dependency. However if the function call is optional, and is wrapped in an if statement using the inc() function, then this would not be a dependency as the calling module would not break if the module being called was not running.

Reference of properties: