summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Core/Plugin/Base.php11
-rw-r--r--app/Core/Plugin/Loader.php2
-rw-r--r--app/Core/Tool.php21
3 files changed, 34 insertions, 0 deletions
diff --git a/app/Core/Plugin/Base.php b/app/Core/Plugin/Base.php
index 15265370..381b8bb3 100644
--- a/app/Core/Plugin/Base.php
+++ b/app/Core/Plugin/Base.php
@@ -41,6 +41,17 @@ abstract class Base extends \Kanboard\Core\Base
}
/**
+ * Returns all helper classes that needs to be stored in the DI container
+ *
+ * @access public
+ * @return array
+ */
+ public function getHelpers()
+ {
+ return array();
+ }
+
+ /**
* Listen on internal events
*
* @access public
diff --git a/app/Core/Plugin/Loader.php b/app/Core/Plugin/Loader.php
index ff4f2c14..775673de 100644
--- a/app/Core/Plugin/Loader.php
+++ b/app/Core/Plugin/Loader.php
@@ -70,6 +70,8 @@ class Loader extends \Kanboard\Core\Base
Tool::buildDic($this->container, $instance->getClasses());
+ Tool::buildDICHelpers($this->container, $instance->getHelpers());
+
$instance->initialize();
$this->plugins[] = $instance;
}
diff --git a/app/Core/Tool.php b/app/Core/Tool.php
index edd2e609..db2445a1 100644
--- a/app/Core/Tool.php
+++ b/app/Core/Tool.php
@@ -56,6 +56,27 @@ class Tool
}
/**
+ * Build dependency injection container for custom helpers from an array
+ *
+ * @static
+ * @access public
+ * @param Container $container
+ * @param array $namespaces
+ * @return Container
+ */
+ public static function buildDICHelpers(Container $container, array $namespaces)
+ {
+ foreach ($namespaces as $namespace => $classes) {
+ foreach ($classes as $name) {
+ $class = '\\Kanboard\\'.$namespace.'\\'.$name;
+ $container['helper']->register($name, $class);
+ }
+ }
+
+ return $container;
+ }
+
+ /**
* Generate a jpeg thumbnail from an image
*
* @static