diff options
Diffstat (limited to 'phpBB/phpbb/extension')
| -rw-r--r-- | phpBB/phpbb/extension/manager.php | 36 | 
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); +			} +		} +	}  } | 
