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:
authorThomas Steur <thomas.steur@googlemail.com>2014-06-13 11:59:45 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-06-13 11:59:45 +0400
commitfccdcc0c2c9416a283d35feb89fa689f9a32fcae (patch)
tree8157e7430be6d69c002aaee6ed65aff28360ed81 /plugins/Actions/Columns
parent83ee5a47ebf6227d7e0b898d506f230f07d9d815 (diff)
moved more logic from core to plugins
Diffstat (limited to 'plugins/Actions/Columns')
-rw-r--r--plugins/Actions/Columns/EntryPageTitle.php4
-rw-r--r--plugins/Actions/Columns/EntryPageUrl.php4
-rw-r--r--plugins/Actions/Columns/ExitPageTitle.php18
-rw-r--r--plugins/Actions/Columns/ExitPageUrl.php4
-rw-r--r--plugins/Actions/Columns/VisitTotalActions.php94
-rw-r--r--plugins/Actions/Columns/VisitTotalSearches.php76
6 files changed, 185 insertions, 15 deletions
diff --git a/plugins/Actions/Columns/EntryPageTitle.php b/plugins/Actions/Columns/EntryPageTitle.php
index 5df614f9e1..5664ea7c21 100644
--- a/plugins/Actions/Columns/EntryPageTitle.php
+++ b/plugins/Actions/Columns/EntryPageTitle.php
@@ -29,9 +29,9 @@ class EntryPageTitle extends VisitDimension
/**
* @param Request $request
- * @param $visit
+ * @param array $visit
* @param Action|null $action
- * @return bool
+ * @return int
*/
public function onNewVisit(Request $request, $visit, $action)
{
diff --git a/plugins/Actions/Columns/EntryPageUrl.php b/plugins/Actions/Columns/EntryPageUrl.php
index b2b9ea0c5c..760f4b635a 100644
--- a/plugins/Actions/Columns/EntryPageUrl.php
+++ b/plugins/Actions/Columns/EntryPageUrl.php
@@ -29,9 +29,9 @@ class EntryPageUrl extends VisitDimension
/**
* @param Request $request
- * @param $visit
+ * @param array $visit
* @param Action|null $action
- * @return bool
+ * @return int
*/
public function onNewVisit(Request $request, $visit, $action)
{
diff --git a/plugins/Actions/Columns/ExitPageTitle.php b/plugins/Actions/Columns/ExitPageTitle.php
index ed2d7821dd..2f2054ac60 100644
--- a/plugins/Actions/Columns/ExitPageTitle.php
+++ b/plugins/Actions/Columns/ExitPageTitle.php
@@ -29,9 +29,9 @@ class ExitPageTitle extends VisitDimension
/**
* @param Request $request
- * @param $visit
+ * @param array $visit
* @param Action|null $action
- * @return bool
+ * @return int|bool
*/
public function onNewVisit(Request $request, $visit, $action)
{
@@ -44,19 +44,19 @@ class ExitPageTitle extends VisitDimension
return (int) $idActionName;
}
+ /**
+ * @param Request $request
+ * @param array $visit
+ * @param Action|null $action
+ * @return int|bool
+ */
public function onExistingVisit(Request $request, $visit, $action)
{
if (empty($action)) {
return false;
}
- $id = $action->getIdActionNameForEntryAndExitIds();
-
- if (!empty($id)) {
- $id = (int) $id;
- }
-
- return $id;
+ return $action->getIdActionNameForEntryAndExitIds();
}
public function getName()
diff --git a/plugins/Actions/Columns/ExitPageUrl.php b/plugins/Actions/Columns/ExitPageUrl.php
index ad3c21ec42..82ad5c598a 100644
--- a/plugins/Actions/Columns/ExitPageUrl.php
+++ b/plugins/Actions/Columns/ExitPageUrl.php
@@ -29,9 +29,9 @@ class ExitPageUrl extends VisitDimension
/**
* @param Request $request
- * @param $visit
+ * @param array $visit
* @param Action|null $action
- * @return bool
+ * @return int|bool
*/
public function onNewVisit(Request $request, $visit, $action)
{
diff --git a/plugins/Actions/Columns/VisitTotalActions.php b/plugins/Actions/Columns/VisitTotalActions.php
new file mode 100644
index 0000000000..49177a3143
--- /dev/null
+++ b/plugins/Actions/Columns/VisitTotalActions.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Actions\Columns;
+
+use Piwik\Plugin\VisitDimension;
+use Piwik\Plugins\CoreHome\Segment;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+use Piwik\Tracker;
+
+class VisitTotalActions extends VisitDimension
+{
+ protected $fieldName = 'visit_total_actions';
+ protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL';
+
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setType(Segment::TYPE_METRIC);
+ $segment->setSegment('actions');
+ $segment->setName('General_NbActions');
+ $this->addSegment($segment);
+ }
+
+ public function getName()
+ {
+ return '';
+ }
+
+ /**
+ * @param Request $request
+ * @param array $visit
+ * @param Action|null $action
+ * @return int
+ */
+ public function onNewVisit(Request $request, $visit, $action)
+ {
+ $actionType = false;
+ if ($action) {
+ $actionType = $action->getActionType();
+ }
+
+ $actions = array(
+ Action::TYPE_PAGE_URL,
+ Action::TYPE_DOWNLOAD,
+ Action::TYPE_OUTLINK,
+ Action::TYPE_SITE_SEARCH,
+ Action::TYPE_EVENT
+ );
+
+ // if visit starts with something else (e.g. ecommerce order), don't record as an action
+ if (in_array($actionType, $actions)) {
+ return 1;
+ }
+
+ return 0;
+ }
+
+ /**
+ * @param Request $request
+ * @param array $visit
+ * @param Action|null $action
+ * @return int
+ */
+ public function onExistingVisit(Request $request, $visit, $action)
+ {
+ if (!$action) {
+ return false;
+ }
+
+ $increment = 'visit_total_actions + 1';
+
+ $idActionUrl = $action->getIdActionUrlForEntryAndExitIds();
+
+ if ($idActionUrl !== false) {
+ return $increment;
+ }
+
+ $actionType = $action->getActionType();
+
+ if (in_array($actionType, array(Action::TYPE_SITE_SEARCH, Action::TYPE_EVENT))) {
+ return $increment;
+ }
+
+ return false;
+ }
+
+} \ No newline at end of file
diff --git a/plugins/Actions/Columns/VisitTotalSearches.php b/plugins/Actions/Columns/VisitTotalSearches.php
new file mode 100644
index 0000000000..42a9ac8b14
--- /dev/null
+++ b/plugins/Actions/Columns/VisitTotalSearches.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Actions\Columns;
+
+use Piwik\Plugin\VisitDimension;
+use Piwik\Plugins\CoreHome\Segment;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+use Piwik\Tracker;
+
+class VisitTotalSearches extends VisitDimension
+{
+ protected $fieldName = 'visit_total_searches';
+ protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL';
+
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setType(Segment::TYPE_METRIC);
+ $segment->setSegment('searches');
+ $segment->setName('General_NbSearches');
+ $segment->setAcceptValues('To select all visits who used internal Site Search, use: &segment=searches>0');
+ $this->addSegment($segment);
+ }
+
+ public function getName()
+ {
+ return '';
+ }
+
+ /**
+ * @param Request $request
+ * @param array $visit
+ * @param Action|null $action
+ * @return int
+ */
+ public function onNewVisit(Request $request, $visit, $action)
+ {
+ if ($this->isSiteSearchAction($action)) {
+ return 1;
+ }
+
+ return 0;
+ }
+
+ /**
+ * @param Request $request
+ * @param array $visit
+ * @param Action|null $action
+ * @return int
+ */
+ public function onExistingVisit(Request $request, $visit, $action)
+ {
+ if ($this->isSiteSearchAction($action)) {
+ return 'visit_total_searches + 1';
+ }
+
+ return false;
+ }
+
+ /**
+ * @param Action|null $action
+ * @return bool
+ */
+ private function isSiteSearchAction($action)
+ {
+ return ($action && $action->getActionType() == Action::TYPE_SITE_SEARCH);
+ }
+
+} \ No newline at end of file