From 50f66a2e241e9c9cfc0f12bde7218c37c0b66644 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Wed, 9 Apr 2014 14:28:45 +1200
Subject: [PATCH] Refs #472 Define event metrics translations in new hook

---
 core/Metrics.php          | 31 ++++++++++++++++++-------------
 plugins/Events/Events.php | 14 +++++++++++++-
 2 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/core/Metrics.php b/core/Metrics.php
index d49d6ca9a1..c96670b938 100644
--- a/core/Metrics.php
+++ b/core/Metrics.php
@@ -126,7 +126,7 @@ class Metrics
         Metrics::INDEX_ECOMMERCE_ORDERS                      => 'orders',
 
         // Events
-        Metrics::INDEX_EVENT_NB_HITS                         => 'nb_hits',
+        Metrics::INDEX_EVENT_NB_HITS                         => 'nb_events',
         Metrics::INDEX_EVENT_SUM_EVENT_VALUE                 => 'sum_event_value',
         Metrics::INDEX_EVENT_MIN_EVENT_VALUE                 => 'min_event_value',
         Metrics::INDEX_EVENT_MAX_EVENT_VALUE                 => 'max_event_value',
@@ -154,8 +154,6 @@ class Metrics
         Metrics::INDEX_NB_VISITS_CONVERTED,
     );
 
-    /* Used in DataTable Sort filter */
-
     static public function getVisitsMetricNames()
     {
         $names = array();
@@ -219,7 +217,7 @@ class Metrics
 
     static public function getDefaultMetricTranslations()
     {
-        $trans = array(
+        $translations = array(
             'label'                         => 'General_ColumnLabel',
             'date'                          => 'General_Date',
             'avg_time_on_page'              => 'General_ColumnAverageTimeOnPage',
@@ -241,23 +239,30 @@ class Metrics
             'exit_nb_uniq_visitors'         => 'General_ColumnUniqueExits',
             'entry_bounce_count'            => 'General_ColumnBounces',
             'exit_bounce_count'             => 'General_ColumnBounces',
-            'exit_rate'                     => 'General_ColumnExitRate'
+            'exit_rate'                     => 'General_ColumnExitRate',
         );
 
-        $trans = array_map(array('\\Piwik\\Piwik','translate'), $trans);
+        $translations = array_map(array('\\Piwik\\Piwik','translate'), $translations);
 
         $dailySum = ' (' . Piwik::translate('General_DailySum') . ')';
         $afterEntry = ' ' . Piwik::translate('General_AfterEntry');
 
-        $trans['sum_daily_nb_uniq_visitors'] = Piwik::translate('General_ColumnNbUniqVisitors') . $dailySum;
-        $trans['sum_daily_entry_nb_uniq_visitors'] = Piwik::translate('General_ColumnUniqueEntrances') . $dailySum;
-        $trans['sum_daily_exit_nb_uniq_visitors'] = Piwik::translate('General_ColumnUniqueExits') . $dailySum;
-        $trans['entry_nb_actions'] = Piwik::translate('General_ColumnNbActions') . $afterEntry;
-        $trans['entry_sum_visit_length'] = Piwik::translate('General_ColumnSumVisitLength') . $afterEntry;
+        $translations['sum_daily_nb_uniq_visitors'] = Piwik::translate('General_ColumnNbUniqVisitors') . $dailySum;
+        $translations['sum_daily_entry_nb_uniq_visitors'] = Piwik::translate('General_ColumnUniqueEntrances') . $dailySum;
+        $translations['sum_daily_exit_nb_uniq_visitors'] = Piwik::translate('General_ColumnUniqueExits') . $dailySum;
+        $translations['entry_nb_actions'] = Piwik::translate('General_ColumnNbActions') . $afterEntry;
+        $translations['entry_sum_visit_length'] = Piwik::translate('General_ColumnSumVisitLength') . $afterEntry;
 
-        $trans = array_merge(self::getDefaultMetrics(), self::getDefaultProcessedMetrics(), $trans);
+        $translations = array_merge(self::getDefaultMetrics(), self::getDefaultProcessedMetrics(), $translations);
 
-        return $trans;
+        /**
+         * Use this event to register translations for metrics processed by your plugin.
+         *
+         * @param string $translations The array mapping of column_name => Plugin_TranslationForColumn
+         */
+        Piwik::postEvent('Metrics.getDefaultMetricTranslations', array(&$translations));
+
+        return $translations;
     }
 
     static public function getDefaultMetrics()
diff --git a/plugins/Events/Events.php b/plugins/Events/Events.php
index f4a8ea0659..f27511fd70 100644
--- a/plugins/Events/Events.php
+++ b/plugins/Events/Events.php
@@ -20,10 +20,22 @@ class Events extends \Piwik\Plugin
     public function getListHooksRegistered()
     {
         return array(
-            'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
+            'API.getSegmentDimensionMetadata'       => 'getSegmentsMetadata',
+            'Metrics.getDefaultMetricTranslations'  => 'getDefaultMetricTranslations',
         );
     }
 
+    public function getDefaultMetricTranslations(&$translations)
+    {
+        $eventTranslations = array(
+            'nb_events'         => 'Events_TotalEvents',
+            'sum_event_value'   => 'Events_TotalValue',
+            'min_event_value'   => 'Events_MinValue',
+            'max_event_value'   => 'Events_MaxValue',
+        );
+        $translations = array_merge($translations, $eventTranslations);
+    }
+
     public function getSegmentsMetadata(&$segments)
     {
         $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment';
-- 
GitLab