diff --git a/app/Core/Plugin/Base.php b/app/Core/Plugin/Base.php index 381b8bb32..ba95e3deb 100644 --- a/app/Core/Plugin/Base.php +++ b/app/Core/Plugin/Base.php @@ -62,7 +62,7 @@ abstract class Base extends \Kanboard\Core\Base { $container = $this->container; - $this->container['dispatcher']->addListener($event, function () use ($container, $callback) { + $this->dispatcher->addListener($event, function () use ($container, $callback) { call_user_func($callback, $container); }); } @@ -70,7 +70,7 @@ abstract class Base extends \Kanboard\Core\Base /** * Get plugin name * - * This method should be overrided by your Plugin class + * This method should be overridden by your Plugin class * * @access public * @return string @@ -83,7 +83,7 @@ abstract class Base extends \Kanboard\Core\Base /** * Get plugin description * - * This method should be overrided by your Plugin class + * This method should be overridden by your Plugin class * * @access public * @return string @@ -96,7 +96,7 @@ abstract class Base extends \Kanboard\Core\Base /** * Get plugin author * - * This method should be overrided by your Plugin class + * This method should be overridden by your Plugin class * * @access public * @return string @@ -109,7 +109,7 @@ abstract class Base extends \Kanboard\Core\Base /** * Get plugin version * - * This method should be overrided by your Plugin class + * This method should be overridden by your Plugin class * * @access public * @return string @@ -122,7 +122,7 @@ abstract class Base extends \Kanboard\Core\Base /** * Get plugin homepage * - * This method should be overrided by your Plugin class + * This method should be overridden by your Plugin class * * @access public * @return string diff --git a/app/Core/Plugin/Loader.php b/app/Core/Plugin/Loader.php index 799024ad8..3482b7ee9 100644 --- a/app/Core/Plugin/Loader.php +++ b/app/Core/Plugin/Loader.php @@ -77,6 +77,11 @@ class Loader extends \Kanboard\Core\Base Tool::buildDICHelpers($this->container, $instance->getHelpers()); $instance->initialize(); + + if (method_exists($instance, 'onStartup')) { + $this->dispatcher->addListener('app.bootstrap', array($instance, 'onStartup')); + } + $this->plugins[] = $instance; } diff --git a/doc/plugin-registration.markdown b/doc/plugin-registration.markdown index 03b3c8418..4b6e85c00 100644 --- a/doc/plugin-registration.markdown +++ b/doc/plugin-registration.markdown @@ -70,6 +70,7 @@ Available methods from `Kanboard\Core\Plugin\Base`: - `getPluginDescription()`: Should return plugin description - `getPluginHomepage()`: Should return plugin Homepage (link) - `setContentSecurityPolicy(array $rules)`: Override default HTTP CSP rules +- `onStartup()`: If present, this method is executed automatically when the event "app.bootstrap" is triggered Your plugin registration class can also inherit from Kanboard\Core\Base, that way you can access all classes and methods of Kanboard easily. @@ -85,9 +86,10 @@ Plugin Translations Plugin can be translated in the same way as the rest of the application. You must load the translations yourself when the session is created: ```php -$this->on('app.bootstrap', function($container) { - Translator::load($container['language']->getCurrentLanguage(), __DIR__.'/Locale'); -}); +public function onStartup() +{ + Translator::load($this->language->getCurrentLanguage(), __DIR__.'/Locale'); +} ``` The translations must be stored in the file `plugins/Myplugin/Locale/xx_XX/translations.php` (replace xx_XX by the language code fr_FR, en_US...).