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

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

/plugins/my_plugin/config.json
{
    "version": "1.0.0",
    "name": "My Plugin Name",
    "description": "A plugin like no other!",
    "authors": [
        {
            "name": "Phillips Data, Inc.",
            "url": "http://www.blesta.com"
        }
    ]
}

Definition

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

A brief description of the plugin. This may also be a language definition in Blesta v4.9.0+.

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 plugin to the logo file. If not set, defaults to views/default/images/logo.png.

Using the Configuration

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

/plugins/my_plugin/my_plugin_plugin.php
<?php
class MyPluginPlugin extends Plugin {
    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.

/plugins/my_plugin/my_plugin_plugin.php
<?php
class MyPluginPlugin extends Plugin {
    public function __construct() {
		Language::loadLang("my_plugin_plugin", null, dirname(__FILE__) . DS . "language" . DS);
		$this->loadConfig(dirname(__FILE__) . DS . "config.json");
    }
}
?>
  • No labels