diff --git a/phpBB/phpbb/extension/manager.php b/phpBB/phpbb/extension/manager.php index e7e5f83c23..7045624f28 100644 --- a/phpBB/phpbb/extension/manager.php +++ b/phpBB/phpbb/extension/manager.php @@ -227,6 +227,8 @@ class manager if ($active) { $this->config->increment('assets_version', 1); + + $this->update_template_paths($name, $this->container->get('template')); } return !$active; @@ -589,4 +591,38 @@ class manager } return $finder; } + + /** + * Make the template aware of ACP template events of a newly enabled extension + * + * @param string $name The extension's name + * @param \phpbb\template\base|null $template The template service + * @return null + */ + protected function update_template_paths($name, \phpbb\template\base $template = null) + { + if ($template instanceof \phpbb\template\base) + { + $possible_paths = array( + $this->phpbb_root_path . 'ext/' . $name . '/adm/style', + $this->phpbb_root_path . 'ext/' . $name . '/styles', + ); + + $paths = array_filter($possible_paths, 'is_dir'); + + if ($paths) + { + $names = array( + array( + 'name' => 'adm', + 'ext_path' => 'adm/style/', + ), + ); + + $paths[] = $this->phpbb_root_path . 'adm/style'; + + $template->set_custom_style($names, $paths); + } + } + } }