aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/style
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2013-04-24 09:52:57 -0700
committerNils Adermann <naderman@naderman.de>2013-04-24 09:52:57 -0700
commit81daf21dc08a18de4a9e541b067724f37ba4d481 (patch)
treed3ed7ee714c0d6629dd78ff01cdfc13ee66986d7 /phpBB/includes/style
parent3e32655c7f22ce9aff7bafdbab6d556879b5fcf9 (diff)
parent10781ce9ae74efd4f04063c78235f4be031b414a (diff)
downloadforums-81daf21dc08a18de4a9e541b067724f37ba4d481.tar
forums-81daf21dc08a18de4a9e541b067724f37ba4d481.tar.gz
forums-81daf21dc08a18de4a9e541b067724f37ba4d481.tar.bz2
forums-81daf21dc08a18de4a9e541b067724f37ba4d481.tar.xz
forums-81daf21dc08a18de4a9e541b067724f37ba4d481.zip
Merge pull request #1324 from nickvergessen/ticket/10844-2
Ticket/10844 Extensions are not located when front-end file has a diffferent phpbb_root_path
Diffstat (limited to 'phpBB/includes/style')
-rw-r--r--phpBB/includes/style/extension_path_provider.php20
1 files changed, 19 insertions, 1 deletions
diff --git a/phpBB/includes/style/extension_path_provider.php b/phpBB/includes/style/extension_path_provider.php
index 6976a45ed0..ec1d85f821 100644
--- a/phpBB/includes/style/extension_path_provider.php
+++ b/phpBB/includes/style/extension_path_provider.php
@@ -40,17 +40,22 @@ class phpbb_style_extension_path_provider extends phpbb_extension_provider imple
*/
protected $base_path_provider;
+ /** @var string */
+ protected $phpbb_root_path;
+
/**
* Constructor stores extension manager
*
* @param phpbb_extension_manager $extension_manager phpBB extension manager
* @param phpbb_style_path_provider $base_path_provider A simple path provider
* to provide paths to be located in extensions
+ * @param string $phpbb_root_path phpBB root path
*/
- public function __construct(phpbb_extension_manager $extension_manager, phpbb_style_path_provider $base_path_provider)
+ public function __construct(phpbb_extension_manager $extension_manager, phpbb_style_path_provider $base_path_provider, $phpbb_root_path)
{
parent::__construct($extension_manager);
$this->base_path_provider = $base_path_provider;
+ $this->phpbb_root_path = $phpbb_root_path;
}
/**
@@ -91,10 +96,23 @@ class phpbb_style_extension_path_provider extends phpbb_extension_provider imple
$directories['style'][] = $path;
if ($path && !phpbb_is_absolute($path))
{
+ // Remove phpBB root path from the style path,
+ // so the finder is able to find extension styles,
+ // when the root path is not ./
+ if (strpos($path, $this->phpbb_root_path) === 0)
+ {
+ $path = substr($path, strlen($this->phpbb_root_path));
+ }
+
$result = $finder->directory('/' . $this->ext_dir_prefix . $path)
->get_directories(true, false, true);
foreach ($result as $ext => $ext_path)
{
+ // Make sure $ext_path has no ending slash
+ if (substr($ext_path, -1) === '/')
+ {
+ $ext_path = substr($ext_path, 0, -1);
+ }
$directories[$ext][] = $ext_path;
}
}