diff options
author | Thomas Steur <tsteur@users.noreply.github.com> | 2019-03-15 01:24:36 +0300 |
---|---|---|
committer | diosmosis <diosmosis@users.noreply.github.com> | 2019-03-15 01:24:36 +0300 |
commit | 6395855aa7f3813cc7f413a18d31505ea26ba32a (patch) | |
tree | 2a3157954dd3c29cc024bf7093df53b63be94dd6 /core/Theme.php | |
parent | d7c932710e690d87ea62c3ec94ae65fa5bd05b05 (diff) |
Support multiple plugin paths (#14051)
* do not hard code plugins directory
* remove method that is not needed for now
* use plugins directory in more places
* some work on supporting multiple plugin directories
* use more unique name
* couple fixes
* and another fix
* sort plugins
* adjust languagesmanager
* adjust more usages
* Update Manager.php
* adding a plugin to test
* more tests
* make sure plugin resources can be located in custom directory
* adding more tests
* rewrite image paths
* handle more cases
* add tests
* make sure to load plugin
* trying to fix test
* trying it this way
* load plugin
* fix ui test?
* testing if tests succeed this way
* another test
* load custom dir plugin
* load plugin in ui fixture
* change the update statement
* remove update script
* delete column
* fix ui test
* make it work for tests
* fix some tests
* Fix merge.
Diffstat (limited to 'core/Theme.php')
-rw-r--r-- | core/Theme.php | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/Theme.php b/core/Theme.php index ed6261334c..e6eb8756c9 100644 --- a/core/Theme.php +++ b/core/Theme.php @@ -75,7 +75,8 @@ class Theme public function rewriteAssetsPathToTheme($output) { - if ($this->themeName == \Piwik\Plugin\Manager::DEFAULT_THEME) { + if ($this->themeName == \Piwik\Plugin\Manager::DEFAULT_THEME + && !Manager::getAlternativeWebRootDirectories()) { return $output; } @@ -140,6 +141,15 @@ class Theme if (file_exists($fileToCheck)) { return str_replace($pathAsset, $overridingAsset, $source); } + + // not rewritten by theme, but may be located in custom webroot directory + foreach (Manager::getAlternativeWebRootDirectories() as $absDir => $webRootDirectory) { + $withoutPlugins = str_replace('plugins/', '', $pathAsset); + if (file_exists($absDir . '/' . $withoutPlugins)) { + return $webRootDirectory . $withoutPlugins; + } + } + return $source; } |