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
diff options
context:
space:
mode:
authorBenaka Moorthi <benaka.moorthi@gmail.com>2013-09-21 11:42:08 +0400
committerBenaka Moorthi <benaka.moorthi@gmail.com>2013-09-21 11:42:08 +0400
commit49b4d0fa9b345806b977b478ad78977f4d21b35c (patch)
tree2f13b4367d0f31983b2ddb9fdf78ceab9da21620 /plugins
parent7ce55dc1a95e75336a594d7266144532762d0ec4 (diff)
Refs #3089, show site search and avg. page load time info in visitor profile.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Live/API.php35
-rw-r--r--plugins/Live/templates/getSingleVisitSummary.twig2
-rw-r--r--plugins/Live/templates/getVisitorProfilePopup.twig11
3 files changed, 44 insertions, 4 deletions
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 9df3594f02..c6fa365479 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -196,6 +196,8 @@ class API
$result['totalVisits'] = 0;
$result['totalVisitDuration'] = 0;
$result['totalActions'] = 0;
+ $result['totalSearches'] = 0;
+ $result['totalPageViews'] = 0;
$result['totalGoalConversions'] = 0;
$result['totalConversionsByGoal'] = array();
@@ -210,6 +212,9 @@ class API
$countries = array();
$continents = array();
+ $siteSearchKeywords = array();
+
+ $pageGenerationTimeTotal = 0;
// aggregate all requested visits info for total_* info
foreach ($visits->getRows() as $visit) {
@@ -249,6 +254,21 @@ class API
$result['totalAbandonedCartsRevenue'] += $action['revenue'];
$result['totalAbandonedCartsItems'] += $action['items'];
}
+
+ if (isset($result['siteSearchKeyword'])) {
+ $keyword = $result['siteSearchKeyword'];
+
+ if (!isset($siteSearchKeywords[$keyword])) {
+ $siteSearchKeyword[$keyword] = 0;
+ ++$result['totalSearches'];
+ }
+ ++$siteSearchKeywords[$keyword];
+ }
+
+ if (isset($result['generationTime'])) {
+ $pageGenerationTimeTotal += $result['generationTime'];
+ ++$result['totalPageViews'];
+ }
}
$countryCode = $visit->getColumn('countryCode');
@@ -264,12 +284,13 @@ class API
++$continents[$continentCode];
}
- // sort countries/continents by visit
+ // sort countries/continents/search keywords by visit/action
asort($countries);
asort($continents);
+ asort($siteSearchKeywords);
- // transform country/continents into something that will look good in XML
- $result['countries'] = $result['continents'] = array();
+ // transform country/continents/search keywords into something that will look good in XML
+ $result['countries'] = $result['continents'] = $result['searches'] = array();
foreach ($countries as $countryCode => $nbVisits) {
$result['countries'][] = array('country' => $countryCode,
'nb_visits' => $nbVisits,
@@ -281,6 +302,14 @@ class API
'nb_visits' => $nbVisits,
'prettyName' => \Piwik\Plugins\UserCountry\continentTranslate($continentCode));
}
+ foreach ($siteSearchKeywords as $keyword => $searchCount) {
+ $result['searches'][] = array('keyword' => $keyword,
+ 'searches' => $searchCount);
+ }
+
+ if ($result['totalPageViews']) {
+ $result['averagePageGenerationTime'] = $pageGenerationTimeTotal / $result['totalPageViews'];
+ }
$result['totalVisitDurationPretty'] = \Piwik\MetricsFormatter::getPrettyTimeFromSeconds($result['totalVisitDuration']);
diff --git a/plugins/Live/templates/getSingleVisitSummary.twig b/plugins/Live/templates/getSingleVisitSummary.twig
index 8755c8361a..151e1cd27d 100644
--- a/plugins/Live/templates/getSingleVisitSummary.twig
+++ b/plugins/Live/templates/getSingleVisitSummary.twig
@@ -14,7 +14,7 @@
<li><span>{{ 'General_IP'|translate }}</span><strong>{{ visitData.visitIp }}</strong></li>
<li class="visitor-profile-id">
<span>{{ 'General_Id'|translate|upper }}</span>
- {% if widgetizedLink is defined %}<a class="visitor-profile-widget-link" href="{{ widgetizedLink }}" target="_blank" title="{{ 'General_OpenInNewWindow_js'|translate }} - {{ 'Live_VisitorProfile'|translate }} {{ 'General_Id'|translate|upper }} {{ visitData.visitorId }}">{% endif %}
+ {% if widgetizedLink is defined %}<a class="visitor-profile-widget-link" href="{{ widgetizedLink }}" target="_blank" title="{{ 'General_OpenInNewWindow'|translate }} - {{ 'Live_VisitorProfile'|translate }} {{ 'General_Id'|translate|upper }} {{ visitData.visitorId }}">{% endif %}
<strong>{{ visitData.visitorId }}</strong>
{% if widgetizedLink is defined %}</a>{% endif %}
<a class="visitor-profile-export" href="{{ exportLink }}" target="_blank" title="{{ 'General_ExportThisReport'|translate }}" style="display:none">
diff --git a/plugins/Live/templates/getVisitorProfilePopup.twig b/plugins/Live/templates/getVisitorProfilePopup.twig
index 50ea1c92c1..85b4345ebd 100644
--- a/plugins/Live/templates/getVisitorProfilePopup.twig
+++ b/plugins/Live/templates/getVisitorProfilePopup.twig
@@ -46,6 +46,17 @@
{%- if visitorData.totalAbandonedCarts|default(0) > 0 %} {{ 'Live_AbandonedCartSummary'|translate('<strong>', visitorData.totalAbandonedCarts, '</strong>', visitorData.totalAbandonedCartsItems, '<strong>', visitorData.totalAbandonedCartsRevenue|money(idSite), '</strong>')|raw }}{%- endif -%}
</p>
{% endif %}
+ {% if visitorData.totalSearches|default(0) %}
+ <p>
+ {{ 'Actions_WidgetSearchKeywords'|translate }}:
+ {%- for entry in visitorData.searches %} <strong title="{% if entry.searches == 1 %}{{ 'Actions_OneSearch'|translate }}{% else %}{{ 'UserCountryMap_Searches'|translate(entry.searches) }}{% endif %}">{{ entry.keyword }}</strong>{% if not loop.last %},{% endif %}{% endfor %}
+ </p>
+ {% endif %}
+ {% if visitorData.averagePageGenerationTime is defined %}
+ <p title="{{ 'Live_CalculatedOverNPageViews'|translate(visitorData.totalPageViews) }}">
+ {{ 'Live_AveragePageGenerationTime'|translate('<strong>' ~ visitorData.averagePageGenerationTime ~ 's</strong>')|raw }}
+ </p>
+ {% endif %}
</div>
</div>
<div class="visitor-profile-important-visits">