From efa8884c862c8136ec03f20db1d7fb186878f757 Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Sun, 20 Oct 2013 22:39:16 +0000 Subject: [PATCH] removed some duplicated code and improved name of getViewDataTableInfoFor method --- core/ViewDataTable/Manager.php | 92 ++++++++++++---------------------- 1 file changed, 32 insertions(+), 60 deletions(-) diff --git a/core/ViewDataTable/Manager.php b/core/ViewDataTable/Manager.php index 3103d65187..cf648920ee 100644 --- a/core/ViewDataTable/Manager.php +++ b/core/ViewDataTable/Manager.php @@ -54,24 +54,6 @@ class Manager return $result; } - /** - * Returns an array mapping viewDataTable IDs with information necessary for adding the - * viewDataTables to the footer of DataTable views. - * - * @param array $viewDataTables An array mapping viewDataTable IDs w/ their associated classes. - * @return array - */ - public static function getViewDataTableInfoFor($viewDataTables) - { - $result = array(); - - foreach ($viewDataTables as $vizId => $vizClass) { - $result[$vizId] = array('table_icon' => $vizClass::FOOTER_ICON, 'title' => $vizClass::FOOTER_ICON_TITLE); - } - - return $result; - } - /** * Returns all registered visualization classes. Uses the 'Visualization.getAvailable' * event to retrieve visualizations. @@ -143,33 +125,20 @@ class Manager ); if ($view->config->show_table) { - $normalViewIcons['buttons'][] = array( - 'id' => HtmlTable::ID, - 'title' => Piwik::translate(HtmlTable::FOOTER_ICON_TITLE), - 'icon' => HtmlTable::FOOTER_ICON, - ); + $normalViewIcons['buttons'][] = static::getFooterIconFor(HtmlTable::ID); } if ($view->config->show_table_all_columns) { - $normalViewIcons['buttons'][] = array( - 'id' => HtmlTable\AllColumns::ID, - 'title' => Piwik::translate(HtmlTable\AllColumns::FOOTER_ICON_TITLE), - 'icon' => HtmlTable\AllColumns::FOOTER_ICON - ); + $normalViewIcons['buttons'][] = static::getFooterIconFor(HtmlTable\AllColumns::ID); } if ($view->config->show_goals) { + $goalButton = static::getFooterIconFor(Goals::ID); if (Common::getRequestVar('idGoal', false) == 'ecommerceOrder') { - $icon = 'plugins/Zeitgeist/images/ecommerceOrder.gif'; - } else { - $icon = Goals::FOOTER_ICON; + $goalButton['icon'] = 'plugins/Zeitgeist/images/ecommerceOrder.gif'; } - $normalViewIcons['buttons'][] = array( - 'id' => Goals::ID, - 'title' => Piwik::translate(Goals::FOOTER_ICON_TITLE), - 'icon' => $icon - ); + $normalViewIcons['buttons'][] = $goalButton; } if ($view->config->show_ecommerce) { @@ -200,39 +169,22 @@ class Manager if ($view->config->show_all_views_icons) { if ($view->config->show_bar_chart) { - $graphViewIcons['buttons'][] = array( - 'id' => Bar::ID, - 'title' => Piwik::translate(Bar::FOOTER_ICON_TITLE), - 'icon' => Bar::FOOTER_ICON - ); + $graphViewIcons['buttons'][] = static::getFooterIconFor(Bar::ID); } if ($view->config->show_pie_chart) { - $graphViewIcons['buttons'][] = array( - 'id' => Pie::ID, - 'title' => Piwik::translate(Pie::FOOTER_ICON_TITLE), - 'icon' => Pie::FOOTER_ICON - ); + $graphViewIcons['buttons'][] = static::getFooterIconFor(Pie::ID); } if ($view->config->show_tag_cloud) { - $graphViewIcons['buttons'][] = array( - 'id' => Cloud::ID, - 'title' => Piwik::translate(Cloud::FOOTER_ICON_TITLE), - 'icon' => Cloud::FOOTER_ICON - ); + $graphViewIcons['buttons'][] = static::getFooterIconFor(Cloud::ID); } if ($view->config->show_non_core_visualizations) { - $nonCoreVisualizations = static::getNonCoreViewDataTables(); - $nonCoreVisualizationInfo = static::getViewDataTableInfoFor($nonCoreVisualizations); - - foreach ($nonCoreVisualizationInfo as $format => $info) { - $graphViewIcons['buttons'][] = array( - 'id' => $format, - 'title' => Piwik::translate($info['title']), - 'icon' => $info['table_icon'] - ); + $nonCoreVisualizations = static::getNonCoreViewDataTables(); + + foreach ($nonCoreVisualizations as $id => $klass) { + $graphViewIcons['buttons'][] = static::getFooterIconFor($id); } } } @@ -241,4 +193,24 @@ class Manager $result[] = $graphViewIcons; } } + + /** + * Returns an array with information necessary for adding the viewDataTable to the footer. + * + * @param string $viewDataTableId + * + * @return array + */ + private static function getFooterIconFor($viewDataTableId) + { + $tables = static::getAvailableViewDataTables(); + + $klass = $tables[$viewDataTableId]; + + return array( + 'id' => $klass::getViewDataTableId(), + 'title' => Piwik::translate($klass::FOOTER_ICON_TITLE), + 'icon' => $klass::FOOTER_ICON, + ); + } } \ No newline at end of file -- GitLab