PluginInterface ​
- Type
- Interface
- Namespace
- craft\base
- Implemented by
- craft\base\Plugin
- Since
- 3.0.0
PluginInterface defines the common interface to be implemented by plugin classes.
A class implementing this interface should also use craft\base\PluginTrait.
Public Methods ​
Method | Description |
---|---|
afterSaveSettings() | Performs actions after the plugin’s settings are saved. |
beforeSaveSettings() | Performs actions before the plugin’s settings are saved. |
config() | Returns the base config that the plugin should be instantiated with. |
editions() | Returns supported plugin editions (lowest to highest). |
getCpNavItem() | Returns the control panel nav item definition for this plugin, if it has a section in the control panel. |
getHandle() | Returns the plugin’s handle (really just an alias of yii\base\Module::$id). |
getMigrator() | Returns the plugin’s migration manager |
getSettings() | Returns the model that the plugin’s settings should be stored on, if the plugin has settings. |
getSettingsResponse() | Returns the settings page response. |
install() | Installs the plugin. |
setSettings() | Sets the plugin settings |
uninstall() | Uninstalls the plugin. |
afterSaveSettings()
​
- Since
- 3.0.16
Performs actions after the plugin’s settings are saved.
beforeSaveSettings()
​
- Since
- 3.0.16
Performs actions before the plugin’s settings are saved.
Returns ​
boolean – Whether the plugin’s settings should be saved.
config()
​
- Since
- 4.0.0
Returns the base config that the plugin should be instantiated with.
It is recommended that plugins define their internal components from here:
public static function config(): array
{
return [
'components' => [
'myComponent' => ['class' => MyComponent::class],
// ...
],
];
}
Doing that enables projects to customize the components as needed, by overriding \craft\services\Plugins::$pluginConfigs
in config/app.php
:
return [
'components' => [
'plugins' => [
'pluginConfigs' => [
'my-plugin' => [
'components' => [
'myComponent' => [
'myProperty' => 'foo',
// ...
],
],
],
],
],
],
];
The resulting config will be passed to \Craft::createObject()
to instantiate the plugin.
Returns ​
editions()
​
- Since
- 3.1.0
Returns supported plugin editions (lowest to highest).
Returns ​
string[]
getCpNavItem()
​
Returns the control panel nav item definition for this plugin, if it has a section in the control panel.
The returned array should contain the following keys:
label
– The human-facing nav item labelurl
– The URL the nav item should link toid
– The HTMLid
attribute the nav item should have (optional)icon
– The path to an SVG file that should be used as the nav item icon (optional)fontIcon
– A character/ligature from Craft’s font icon set (optional)badgeCount
– A number that should be displayed beside the nav item when unselectedsubnav
– A sub-array of subnav items
The subnav array should be associative, with identifiable keys set to sub-arrays with the following keys:
label
– The human-facing subnav item labelurl
– The URL the subnav item should link to
For example:
return [
'label' => 'Commerce',
'url' => 'commerce',
'subnav' => [
'orders' => ['label' => 'Orders', 'url' => 'commerce/orders',
'discounts' => ['label' => 'Discounts', 'url' => 'commerce/discounts',
],
];
Control panel templates can specify which subnav item is selected by defining a selectedSubnavItem
variable.
{% set selectedSubnavItem = 'orders' %}
See also:
Returns ​
getHandle()
​
Returns the plugin’s handle (really just an alias of yii\base\Module::$id).
Returns ​
string – The plugin’s handle
getMigrator()
​
Returns the plugin’s migration manager
Returns ​
craft\db\MigrationManager – The plugin’s migration manager
getSettings()
​
Returns the model that the plugin’s settings should be stored on, if the plugin has settings.
Returns ​
craft\base\Model, null – The model that the plugin’s settings should be stored on, if the plugin has settings
getSettingsResponse()
​
Returns the settings page response.
Returns ​
mixed
– The result that should be returned from craft\controllers\PluginsController::actionEditPluginSettings()
install()
​
Installs the plugin.
setSettings()
​
Sets the plugin settings
Arguments ​
$settings
(array) – The plugin settings that should be set on the settings model
uninstall()
​
Uninstalls the plugin.