From 7a91479f195b50b9883b19e98fa225d737cf2e4a Mon Sep 17 00:00:00 2001
From: Thomas Steur <thomas.steur@googlemail.com>
Date: Fri, 15 Aug 2014 15:03:08 +0200
Subject: [PATCH] findMultiComponents can now find components in sub folders

---
 core/Plugin.php                                   |  7 ++++---
 plugins/CoreVisualizations/CoreVisualizations.php | 12 ------------
 2 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/core/Plugin.php b/core/Plugin.php
index bc24c2317a..8839a96212 100644
--- a/core/Plugin.php
+++ b/core/Plugin.php
@@ -442,13 +442,14 @@ class Plugin
     {
         $components = array();
 
-        $files = Filesystem::globr(PIWIK_INCLUDE_PATH . '/plugins/' . $this->pluginName . '/' . $directoryWithinPlugin, '*.php');
+        $baseDir = PIWIK_INCLUDE_PATH . '/plugins/' . $this->pluginName . '/' . $directoryWithinPlugin;
+        $files   = Filesystem::globr($baseDir, '*.php');
 
         foreach ($files as $file) {
             require_once $file;
 
-            $fileName = basename($file, '.php');
-            $klassName = sprintf('Piwik\\Plugins\\%s\\%s\\%s', $this->pluginName, $directoryWithinPlugin, $fileName);
+            $fileName  = str_replace(array($baseDir . '/', '.php'), '', $file);
+            $klassName = sprintf('Piwik\\Plugins\\%s\\%s\\%s', $this->pluginName, $directoryWithinPlugin, str_replace('/', '\\', $fileName));
 
             if (!class_exists($klassName)) {
                 continue;
diff --git a/plugins/CoreVisualizations/CoreVisualizations.php b/plugins/CoreVisualizations/CoreVisualizations.php
index 112858d499..54aa127c91 100644
--- a/plugins/CoreVisualizations/CoreVisualizations.php
+++ b/plugins/CoreVisualizations/CoreVisualizations.php
@@ -12,9 +12,6 @@ namespace Piwik\Plugins\CoreVisualizations;
 use Piwik\ViewDataTable\Manager as ViewDataTableManager;
 
 require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/JqplotDataGenerator.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/Cloud.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/HtmlTable.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph.php';
 
 /**
  * This plugin contains all core visualizations, such as the normal HTML table and
@@ -30,7 +27,6 @@ class CoreVisualizations extends \Piwik\Plugin
         return array(
             'AssetManager.getStylesheetFiles'        => 'getStylesheetFiles',
             'AssetManager.getJavaScriptFiles'        => 'getJsFiles',
-            'ViewDataTable.addViewDataTable'         => 'getAvailableDataTableVisualizations',
             'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
             'UsersManager.deleteUser'                => 'deleteUser'
         );
@@ -41,14 +37,6 @@ class CoreVisualizations extends \Piwik\Plugin
         ViewDataTableManager::clearUserViewDataTableParameters($userLogin);
     }
 
-    public function getAvailableDataTableVisualizations(&$visualizations)
-    {
-        $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\HtmlTable\\AllColumns';
-        $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Pie';
-        $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Bar';
-        $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Evolution';
-    }
-
     public function getStylesheetFiles(&$stylesheets)
     {
         $stylesheets[] = "plugins/CoreVisualizations/stylesheets/dataTableVisualizations.less";
-- 
GitLab