From 714bdb0d024c952cafd7924212b862ae31d7f1d4 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 7 May 2016 18:15:32 -0400 Subject: Added method onStartup() for plugins --- app/Core/Plugin/Base.php | 12 ++++++------ app/Core/Plugin/Loader.php | 5 +++++ doc/plugin-registration.markdown | 8 +++++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/Core/Plugin/Base.php b/app/Core/Plugin/Base.php index 381b8bb3..ba95e3de 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 799024ad..3482b7ee 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 03b3c841..4b6e85c0 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...). -- cgit v1.2.3