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.

View source

Public Methods

MethodDescription
afterSaveSettings()Performs actions after the plugin’s settings are saved.
beforeSaveSettings()Performs actions before the plugin’s settings are saved.
editions()Returns supported plugin editions (lowest to highest).
getCpNavItem()Returns the CP nav item definition for this plugin’s CP section, if it has one.
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.
getVersion()Returns the plugin’s current version.
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.

View source

beforeSaveSettings()

Since
3.0.16

Performs actions before the plugin’s settings are saved.

View source

Returns

boolean – Whether the plugin’s settings should be saved.

editions()

Since
3.1.0

Returns supported plugin editions (lowest to highest).

View source

Returns

string[]

getCpNavItem()

Returns the CP nav item definition for this plugin’s CP section, if it has one. The CP nav item definition should be an array with the following keys:

  • label – The human-facing nav item label
  • url – The URL the nav item should link to
  • id – The HTML id 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 unselected
  • subnav – 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 label
  • url – 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:

View source

Returns

array, null

getHandle()

Returns the plugin’s handle (really just an alias of yii\base\Module::$id).

View source

Returns

string – The plugin’s handle

getMigrator()

Returns the plugin’s migration manager

View source

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.

View source

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.

View source

Returns

mixed – The result that should be returned from craft\controllers\PluginsController::actionEditPluginSettings()

getVersion()

Returns the plugin’s current version.

View source

Returns

string – The plugin’s current version

install()

Installs the plugin.

View source

Returns

void, false – Return false to indicate the installation failed. All other return values mean the installation was successful.

setSettings()

Sets the plugin settings

View source

Arguments

  • $settings (array) – The plugin settings that should be set on the settings model

uninstall()

Uninstalls the plugin.

View source

Returns

void, false – Return false to indicate the uninstallation failed. All other return values mean the uninstallation was successful.