You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Modules in version 3.1+ support the use of a config.json file, that defines basic configuration settings for the module.

Due to backwards compatibility with version 3.0, config.json files are not required but are strongly recommended as they may be required in future versions.

Configuration Format

Example

/components/modules/my_module/config.json
{
    "version": "1.0.0",
    "name": "My Module Name",
    "description": "A module like no other!",
    "authors": [
        {
            "name": "Phillips Data, Inc.",
            "url": "http://www.blesta.com"
        }
    ],
	"package": {
		"name_key": "input_name_key"
	},
    "service": {
        "name_key": "service_field_key"
    },
    "module": {
        "row": "Signular Form of Module Row",
        "rows": "Plural Form of Module Row",
        "group": "Module Group Name",
        "row_key": "module_row_field_key"
    },
	"email_tags": {
		"module": ["tag_one", "tag_two"],
		"package": ["type", "package"],
		"service": ["service_field_key", "service_field_username"],
	}
}

Definition

OptionDescription
versionThe version of the module. This should be a semantic version number.
nameThe name of the module. This may also be a language definition.
description

A brief description of the module.

Planned for future use.

authors

An array of author objects.

OptionDescription
nameThe name of the author. This may be a language definition
urlThe URL to link to for the author.
logoThe path within the module to the logo file. If not set, defaults to views/default/images/logo.png.
package

An object of service settings.

OptionDescription
name_keyThe value of the input key in $vars that represents the package's label before it becomes a service (e.g. if your module registers domains, this might be domain).
service

An object of service settings.

OptionDescription
name_keyThe value of service_fields.key used to identify a service's label (e.g. if your module registers domains, this might be domain).
module

An object of module settings.

OptionDescription
rowThe singular form of the noun used to describe a module row (e.g. if your module registers domain, this might be Registrar Account). This may also be a language definition.
rowsThe plural form of the noun used to describe the module row (e.g. Registrar Accounts). This may also be a language definition.
groupThe noun used to describe a collection of module rows (e.g. Registrar Accounts). This may also be a language definition.
row_keyThe value of module_row_meta.key used to identify a module row.
email_tags

An object containing tags for the module, service, package, and any other tag groups, each of which contain an array of strings representing each tag in that group.

These tags will be displayed when an admin configures the welcome email template.

Using the Configuration

To use the configuration file you must include it within the constructor of your module using the loadConfig() method.

/components/modules/my_module/my_module.php
<?php
class MyModule extends Module {
    public function __construct() {
        $this->loadConfig(dirname(__FILE__) . DS . "config.json");
    }
}
?>

If your configuration uses any language definitions, be sure to include those before loading the config.

/components/modules/my_module/my_module.php
<?php
class MyModule extends Module {
    public function __construct() {
		Language::loadLang("my_module", null, dirname(__FILE__) . DS . "language" . DS);
		$this->loadConfig(dirname(__FILE__) . DS . "config.json");
    }
}
?>
  • No labels