[ticket/15187] Add paths of newly enabled extensions to template

When enabling an extension its paths aren't added immediately to
the template which results in ACP events not being registered in
the compiled template files.

PHPBB3-15187
This commit is contained in:
kasimi 2017-04-28 16:32:11 +02:00
parent 7254980753
commit e6b7defd38
No known key found for this signature in database
GPG key ID: 3163AB573241193A

View file

@ -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);
}
}
}
}