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:
authormattpiwik <matthieu.aubry@gmail.com>2012-10-15 11:41:12 +0400
committermattpiwik <matthieu.aubry@gmail.com>2012-10-15 11:41:12 +0400
commit5364959053ad9f086a37eff591bed7db7de67add (patch)
tree7a5675d8c0da719dd88370bbba0efc8366888b58 /plugins/VisitsSummary
parent5bc36eb3cac3421f7a592edee11528e63252e841 (diff)
Refs #2992 Site Search KABOOM, Refs #49
Implementing Site Search tracking & reporting in Piwik core! * New Admin UI to customize, for each site, wheter site search is enabled. Also options to set default values to use. * New Reports: Searches, Searches with no result, Search categories, Top Pages Following a Search * to track "No result keyword" users will have to tag their site with a JS call, or add a new parameter to the search result page &search_count=X (X being zero for no result searches) * Reports works with Row evolution, PDF/HTML reports, Piwik Mobile * idaction_url is now NULLable because, Site Search records a page with idaction_name == Keyword, and idaction_url == NULL. This ensures that the Site Searches don't create "Page URL Not defined" records. * updates to Tracker JS API, new function trackSiteSearch, also added in PHP tracker * New fields in log_visit to track searches * new segment, "searches" which can be used to select visitors who did a search ie. searches>0 or those who searched a lot, ie searches>10 TODO: * commmit integration test, TESTING, DOCS, FAQ, release, and a nice Prayer to the universe and the stars, hoping that I can code a major new feature without any bug... * It would be awesome to have compatiblity with Transitions so we can see, for a given site search, what are the starting pages and Destination pages Thank you for your patience Timo, and thank in advance everyone for your help Testing this new feature! git-svn-id: http://dev.piwik.org/svn/trunk@7190 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/VisitsSummary')
-rw-r--r--plugins/VisitsSummary/Controller.php29
-rw-r--r--plugins/VisitsSummary/templates/sparklines.tpl7
2 files changed, 32 insertions, 4 deletions
diff --git a/plugins/VisitsSummary/Controller.php b/plugins/VisitsSummary/Controller.php
index 08a1fe96fd..ba9d1453b2 100644
--- a/plugins/VisitsSummary/Controller.php
+++ b/plugins/VisitsSummary/Controller.php
@@ -73,7 +73,14 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
'nb_outlinks',
'nb_uniq_outlinks'
);
-
+
+ $idSite = Piwik_Common::getRequestVar('idSite');
+ $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite);
+
+ if($displaySiteSearch) {
+ $selectableColumns[] = 'nb_searches';
+ $selectableColumns[] = 'nb_keywords';
+ }
$view = $this->getLastUnitGraphAcrossPlugins($this->pluginName, __FUNCTION__, $columns,
$selectableColumns, $documentation);
@@ -110,11 +117,19 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
$view->urlSparklineMaxActions = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('max_actions')));
$view->urlSparklineActionsPerVisit = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_actions_per_visit')));
$view->urlSparklineBounceRate = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('bounce_rate')));
-
+
+ $idSite = Piwik_Common::getRequestVar('idSite');
+ $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite);
+ if($displaySiteSearch)
+ {
+ $view->urlSparklineNbSearches = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_searches', 'nb_keywords')));
+ }
+ $view->displaySiteSearch = $displaySiteSearch;
+
$dataTableVisit = self::getVisitsSummary();
$dataRow = $dataTableVisit->getFirstRow();
- $dataTableActions = Piwik_Actions_API::getInstance()->get(Piwik_Common::getRequestVar('idSite'), Piwik_Common::getRequestVar('period'), Piwik_Common::getRequestVar('date'), Piwik_Common::getRequestVar('segment',false));
+ $dataTableActions = Piwik_Actions_API::getInstance()->get($idSite, Piwik_Common::getRequestVar('period'), Piwik_Common::getRequestVar('date'), Piwik_Common::getRequestVar('segment',false));
$dataActionsRow = $dataTableActions->getFirstRow();
$view->nbUniqVisitors = (int)$dataRow->getColumn('nb_uniq_visitors');
@@ -131,7 +146,13 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
$view->bounceRate = Piwik::getPercentageSafe($nbBouncedVisits, $nbVisits);
$view->maxActions = (int)$dataRow->getColumn('max_actions');
$view->nbActionsPerVisit = $dataRow->getColumn('nb_actions_per_visit');
-
+
+ if($displaySiteSearch)
+ {
+ $view->nbSearches = (int)$dataActionsRow->getColumn('nb_searches');
+ $view->nbKeywords = (int)$dataActionsRow->getColumn('nb_keywords');
+ }
+
// backward compatibility:
// show actions if the finer metrics are not archived
$view->showOnlyActions = false;
diff --git a/plugins/VisitsSummary/templates/sparklines.tpl b/plugins/VisitsSummary/templates/sparklines.tpl
index fd50969ab4..b59144b4ce 100644
--- a/plugins/VisitsSummary/templates/sparklines.tpl
+++ b/plugins/VisitsSummary/templates/sparklines.tpl
@@ -42,6 +42,13 @@
{'VisitsSummary_NbUniqueOutlinksDescription'|translate:"<strong>$nbUniqueOutlinks</strong>"}
</div>
{/if}
+ {if $displaySiteSearch}
+ <div class="sparkline">
+ {sparkline src=$urlSparklineNbSearches}
+ {'VisitsSummary_NbSearchesDescription'|translate:"<strong>$nbSearches</strong>"|trim},
+ {'VisitsSummary_NbKeywordsDescription'|translate:"<strong>$nbKeywords</strong>"}
+ </div>
+ {/if}
<div class="sparkline">
{sparkline src=$urlSparklineMaxActions}
{'VisitsSummary_MaxNbActions'|translate:"<strong>$maxActions</strong>"}