diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-27 07:27:20 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-27 07:27:20 +0400 |
commit | 1790ae4d7b27e1356e5ad1b82d0aae5f7b6f0d31 (patch) | |
tree | 91644782f277aaa0bcb9e46090d373ec1c3005ad | |
parent | 578e7e74ab0c241e9a38cbcb0c377f2df8b728e5 (diff) |
automatically detect visualizations within visualization directory
-rw-r--r-- | core/ViewDataTable/Manager.php | 9 | ||||
-rw-r--r-- | plugins/CoreVisualizations/CoreVisualizations.php | 3 | ||||
-rw-r--r-- | plugins/ExampleVisualization/ExampleVisualization.php | 14 | ||||
-rw-r--r-- | plugins/ExampleVisualization/Visualizations/SimpleTable.php (renamed from plugins/ExampleVisualization/SimpleTable.php) | 2 | ||||
-rw-r--r-- | plugins/Goals/Goals.php | 6 | ||||
-rw-r--r-- | plugins/Insights/Insights.php | 8 |
6 files changed, 9 insertions, 33 deletions
diff --git a/core/ViewDataTable/Manager.php b/core/ViewDataTable/Manager.php index ce0308316b..24616ece5c 100644 --- a/core/ViewDataTable/Manager.php +++ b/core/ViewDataTable/Manager.php @@ -18,6 +18,7 @@ use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Bar; use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Pie; use Piwik\Plugins\Goals\Visualizations\Goals; use Piwik\Plugins\Insights\Visualizations\Insight; +use Piwik\Plugin\Manager as PluginManager; /** * ViewDataTable Manager. @@ -62,8 +63,10 @@ class Manager */ public static function getAvailableViewDataTables() { + $klassToExtend = '\\Piwik\\Plugin\\ViewDataTable'; + /** @var string[] $visualizations */ - $visualizations = array(); + $visualizations = PluginManager::getInstance()->findMultipleComponents('Visualizations', $klassToExtend); /** * Triggered when gathering all available DataTable visualizations. @@ -79,6 +82,8 @@ class Manager * } * * @param array &$visualizations The array of all available visualizations. + * @ignore + * @deprecated since 2.5.0 Place visualization in a "Visualizations" directory instead. */ Piwik::postEvent('ViewDataTable.addViewDataTable', array(&$visualizations)); @@ -89,7 +94,7 @@ class Manager throw new \Exception("Invalid visualization class '$viz' found in Visualization.getAvailableVisualizations."); } - if (!is_subclass_of($viz, '\\Piwik\\Plugin\\ViewDataTable')) { + if (!is_subclass_of($viz, $klassToExtend)) { throw new \Exception("ViewDataTable class '$viz' does not extend Plugin/ViewDataTable"); } diff --git a/plugins/CoreVisualizations/CoreVisualizations.php b/plugins/CoreVisualizations/CoreVisualizations.php index ae86d51896..112858d499 100644 --- a/plugins/CoreVisualizations/CoreVisualizations.php +++ b/plugins/CoreVisualizations/CoreVisualizations.php @@ -43,10 +43,7 @@ class CoreVisualizations extends \Piwik\Plugin public function getAvailableDataTableVisualizations(&$visualizations) { - $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\Sparkline'; - $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\HtmlTable'; $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\HtmlTable\\AllColumns'; - $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\Cloud'; $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Pie'; $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Bar'; $visualizations[] = 'Piwik\\Plugins\\CoreVisualizations\\Visualizations\\JqplotGraph\\Evolution'; diff --git a/plugins/ExampleVisualization/ExampleVisualization.php b/plugins/ExampleVisualization/ExampleVisualization.php index e0f7edb085..f0c42a9598 100644 --- a/plugins/ExampleVisualization/ExampleVisualization.php +++ b/plugins/ExampleVisualization/ExampleVisualization.php @@ -12,18 +12,4 @@ namespace Piwik\Plugins\ExampleVisualization; */ class ExampleVisualization extends \Piwik\Plugin { - /** - * @see Piwik\Plugin::getListHooksRegistered - */ - public function getListHooksRegistered() - { - return array( - 'ViewDataTable.addViewDataTable' => 'getAvailableVisualizations' - ); - } - - public function getAvailableVisualizations(&$visualizations) - { - $visualizations[] = __NAMESPACE__ . '\\SimpleTable'; - } } diff --git a/plugins/ExampleVisualization/SimpleTable.php b/plugins/ExampleVisualization/Visualizations/SimpleTable.php index 6aca5e83ec..8aeeec7f3b 100644 --- a/plugins/ExampleVisualization/SimpleTable.php +++ b/plugins/ExampleVisualization/Visualizations/SimpleTable.php @@ -7,7 +7,7 @@ * */ -namespace Piwik\Plugins\ExampleVisualization; +namespace Piwik\Plugins\ExampleVisualization\Visualizations; use Piwik\DataTable; use Piwik\Plugin\ViewDataTable; diff --git a/plugins/Goals/Goals.php b/plugins/Goals/Goals.php index 6c8420bf79..9dff08bb5e 100644 --- a/plugins/Goals/Goals.php +++ b/plugins/Goals/Goals.php @@ -97,7 +97,6 @@ class Goals extends \Piwik\Plugin 'SitesManager.deleteSite.end' => 'deleteSiteGoals', 'Goals.getReportsWithGoalMetrics' => 'getActualReportsWithGoalMetrics', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', - 'ViewDataTable.addViewDataTable' => 'getAvailableDataTableVisualizations', 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations' ); return $hooks; @@ -124,11 +123,6 @@ class Goals extends \Piwik\Plugin $translations = array_merge($translations, $metrics); } - public function getAvailableDataTableVisualizations(&$visualizations) - { - $visualizations[] = 'Piwik\\Plugins\\Goals\\Visualizations\\Goals'; - } - /** * Delete goals recorded for this site */ diff --git a/plugins/Insights/Insights.php b/plugins/Insights/Insights.php index 0d9d5fe1be..82b515d2aa 100644 --- a/plugins/Insights/Insights.php +++ b/plugins/Insights/Insights.php @@ -19,16 +19,10 @@ class Insights extends \Piwik\Plugin { return array( 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', - 'ViewDataTable.addViewDataTable' => 'getAvailableVisualizations' + 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles' ); } - public function getAvailableVisualizations(&$visualizations) - { - $visualizations[] = __NAMESPACE__ . '\\Visualizations\\Insight'; - } - public function getStylesheetFiles(&$stylesheets) { $stylesheets[] = "plugins/Insights/stylesheets/insightVisualization.less"; |