Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorThomas Steur <tsteur@users.noreply.github.com>2019-09-22 23:28:15 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2019-09-22 23:28:15 +0300
commit6db4698f572d6500d461e5d2fca565dcf1e12932 (patch)
treee013946270baf2a7d003b2d0ecd48e6b2ce64f41 /core
parentcb97621911bed774b9f0c3a7d52d4cb0db38ee89 (diff)
When loading a template url from a custom plugin directory, prefix the relative directory (#14717)
* When loading a template url from a custom plugin directory, prefix the relative directory * detect relative dir partially * replace the initial plugins part as well * only print info for activated plugins * Update _jsGlobalVariables.twig * remove duplicate endif * Update http404check.js
Diffstat (limited to 'core')
-rw-r--r--core/Plugin/Controller.php5
-rw-r--r--core/Plugin/Manager.php10
2 files changed, 14 insertions, 1 deletions
diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php
index 9b4f8dbf2c..1568b3145d 100644
--- a/core/Plugin/Controller.php
+++ b/core/Plugin/Controller.php
@@ -35,6 +35,7 @@ use Piwik\Plugins\LanguagesManager\LanguagesManager;
use Piwik\SettingsPiwik;
use Piwik\Site;
use Piwik\Url;
+use Piwik\Plugin;
use Piwik\View;
use Piwik\View\ViewInterface;
use Piwik\ViewDataTable\Factory as ViewDataTableFactory;
@@ -748,6 +749,9 @@ abstract class Controller
$view->setXFrameOptions('sameorigin');
}
+ $pluginManager = Plugin\Manager::getInstance();
+ $view->relativePluginWebDirs = (object) $pluginManager->getWebRootDirectoriesForCustomPluginDirs();
+
self::setHostValidationVariablesView($view);
}
@@ -1063,3 +1067,4 @@ abstract class Controller
}
}
}
+
diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php
index e6872ef5a6..b47ffc0983 100644
--- a/core/Plugin/Manager.php
+++ b/core/Plugin/Manager.php
@@ -55,6 +55,7 @@ class Manager
protected $doLoadPlugins = true;
protected static $pluginsToPathCache = array();
+ protected static $pluginsToWebRootDirCache = array();
private $pluginsLoadedAndActivated;
@@ -409,6 +410,11 @@ class Manager
return $dirs;
}
+ public function getWebRootDirectoriesForCustomPluginDirs()
+ {
+ return array_intersect_key(self::$pluginsToWebRootDirCache, array_flip($this->pluginsToLoad));
+ }
+
/**
* Returns the path to all plugins directories. Each plugins directory may contain several plugins.
* All paths have a trailing slash '/'.
@@ -465,10 +471,11 @@ class Manager
return self::$pluginsToPathCache[$pluginName];
}
- foreach (self::getPluginsDirectories() as $dir) {
+ foreach (self::getAlternativeWebRootDirectories() as $dir => $relative) {
$path = $dir . $pluginName;
if (is_dir($path)) {
self::$pluginsToPathCache[$pluginName] = self::getPluginRealPath($path);
+ self::$pluginsToWebRootDirCache[$pluginName] = $relative;
return $path;
}
}
@@ -1640,3 +1647,4 @@ class Manager
}
}
}
+