diff options
Diffstat (limited to 'app/Helper/HookHelper.php')
-rw-r--r-- | app/Helper/HookHelper.php | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/app/Helper/HookHelper.php b/app/Helper/HookHelper.php new file mode 100644 index 00000000..e8abc875 --- /dev/null +++ b/app/Helper/HookHelper.php @@ -0,0 +1,66 @@ +<?php + +namespace Kanboard\Helper; + +use Kanboard\Core\Base; + +/** + * Template Hook helpers + * + * @package helper + * @author Frederic Guillot + */ +class HookHelper extends Base +{ + /** + * Add assets JS or CSS + * + * @access public + * @param string $type + * @param string $hook + * @return string + */ + public function asset($type, $hook) + { + $buffer = ''; + + foreach ($this->hook->getListeners($hook) as $file) { + $buffer .= $this->helper->asset->$type($file); + } + + return $buffer; + } + + /** + * Render all attached hooks + * + * @access public + * @param string $hook + * @param array $variables + * @return string + */ + public function render($hook, array $variables = array()) + { + $buffer = ''; + + foreach ($this->hook->getListeners($hook) as $template) { + $buffer .= $this->template->render($template, $variables); + } + + return $buffer; + } + + /** + * Attach a template to a hook + * + * @access public + * @param string $hook + * @param string $template + * @return \Helper\Hook + */ + public function attach($hook, $template) + { + $this->hook->on($hook, $template); + return $this; + } +} |