diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-13 11:59:45 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-13 11:59:45 +0400 |
commit | fccdcc0c2c9416a283d35feb89fa689f9a32fcae (patch) | |
tree | 8157e7430be6d69c002aaee6ed65aff28360ed81 /plugins/Actions/Columns | |
parent | 83ee5a47ebf6227d7e0b898d506f230f07d9d815 (diff) |
moved more logic from core to plugins
Diffstat (limited to 'plugins/Actions/Columns')
-rw-r--r-- | plugins/Actions/Columns/EntryPageTitle.php | 4 | ||||
-rw-r--r-- | plugins/Actions/Columns/EntryPageUrl.php | 4 | ||||
-rw-r--r-- | plugins/Actions/Columns/ExitPageTitle.php | 18 | ||||
-rw-r--r-- | plugins/Actions/Columns/ExitPageUrl.php | 4 | ||||
-rw-r--r-- | plugins/Actions/Columns/VisitTotalActions.php | 94 | ||||
-rw-r--r-- | plugins/Actions/Columns/VisitTotalSearches.php | 76 |
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 |