Skip to main content
Version: 6

Plugin Configuration

Plugins should include a config.json file, which defines basic configuration settings for the plugin.

Configuration Format

Example

/plugins/my_plugin/config.json
{
"version": "1.0.0",
"name": "My Plugin Name",
"description": "A plugin like no other!",
"icon": "bi bi-puzzle",
"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.
descriptionA brief description of the plugin. This may also be a language definition in Blesta v4.9.0+.
authorsAn array of author objects.

name — The name of the author. This may be a language definition
url — The 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.
icon(Blesta 6.0+) A Bootstrap Icons class string (e.g. "bi bi-puzzle") used to render the plugin's logo on the Settings > Plugins listing as a "Blesta + icon" badge. When omitted, the listing falls back to the logo field.

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");
}
}
?>