aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/extension/manager.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb/extension/manager.php')
-rw-r--r--phpBB/phpbb/extension/manager.php36
1 files changed, 36 insertions, 0 deletions
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);
+ }
+ }
+ }
}