diff options
Diffstat (limited to 'phpBB/phpbb/template/asset.php')
| -rw-r--r-- | phpBB/phpbb/template/asset.php | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/phpBB/phpbb/template/asset.php b/phpBB/phpbb/template/asset.php index ff9366af4a..cb00f16549 100644 --- a/phpBB/phpbb/template/asset.php +++ b/phpBB/phpbb/template/asset.php @@ -20,15 +20,20 @@ class asset  	/** @var \phpbb\path_helper **/  	protected $path_helper; +	/** @var \phpbb\filesystem\filesystem */ +	protected $filesystem; +  	/**  	* Constructor  	*  	* @param string $url URL  	* @param \phpbb\path_helper $path_helper Path helper object +	* @param \phpbb\filesystem\filesystem $filesystem  	*/ -	public function __construct($url, \phpbb\path_helper $path_helper) +	public function __construct($url, \phpbb\path_helper $path_helper, \phpbb\filesystem\filesystem $filesystem)  	{  		$this->path_helper = $path_helper; +		$this->filesystem = $filesystem;  		$this->set_url($url);  	} @@ -152,18 +157,18 @@ class asset  	*/  	public function set_path($path, $urlencode = false)  	{ -		// Since 1.7.0 Twig returns the real path of the file. We need it to be relative to the working directory. -		$real_root_path = realpath($this->path_helper->get_phpbb_root_path()) . DIRECTORY_SEPARATOR; +		// Since 1.7.0 Twig returns the real path of the file. We need it to be relative. +		$real_root_path = $this->filesystem->realpath($this->path_helper->get_phpbb_root_path()) . DIRECTORY_SEPARATOR;  		// If the asset is under the phpBB root path we need to remove its path and then prepend $phpbb_root_path -		if (substr($path . DIRECTORY_SEPARATOR, 0, strlen($real_root_path)) === $real_root_path) +		if ($real_root_path && substr($path . DIRECTORY_SEPARATOR, 0, strlen($real_root_path)) === $real_root_path)  		{  			$path = $this->path_helper->get_phpbb_root_path() . str_replace('\\', '/', substr($path, strlen($real_root_path)));  		}  		else  		{  			// Else we make the path relative to the current working directory -			$real_root_path = realpath('.') . DIRECTORY_SEPARATOR; +			$real_root_path = $this->filesystem->realpath('.') . DIRECTORY_SEPARATOR;  			if ($real_root_path && substr($path . DIRECTORY_SEPARATOR, 0, strlen($real_root_path)) === $real_root_path)  			{  				$path = str_replace('\\', '/', substr($path, strlen($real_root_path))); | 
