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 | |
parent | 83ee5a47ebf6227d7e0b898d506f230f07d9d815 (diff) |
moved more logic from core to plugins
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/API/API.php | 30 | ||||
-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 | ||||
-rw-r--r-- | plugins/CoreHome/Columns/VisitFirstActionTime.php | 36 | ||||
-rw-r--r-- | plugins/CoreHome/Columns/VisitLastActionTime.php | 53 | ||||
-rw-r--r-- | plugins/CoreHome/Columns/VisitorDaysSinceFirst.php | 45 | ||||
-rw-r--r-- | plugins/CoreHome/Columns/VisitorDaysSinceOrder.php | 41 | ||||
-rw-r--r-- | plugins/CoreHome/Columns/VisitsCount.php | 45 | ||||
-rw-r--r-- | plugins/CoreHome/Segment.php | 21 | ||||
-rw-r--r-- | plugins/Events/Columns/TotalEvents.php | 44 | ||||
-rw-r--r-- | plugins/UserSettings/Columns/Language.php | 18 | ||||
-rw-r--r-- | plugins/UserSettings/Columns/Resolution.php | 20 | ||||
-rw-r--r-- | plugins/VisitTime/Columns/Localtime.php | 14 | ||||
-rw-r--r-- | plugins/VisitorInterest/Columns/Visitsbydayssincelastvisit.php | 19 |
18 files changed, 538 insertions, 48 deletions
diff --git a/plugins/API/API.php b/plugins/API/API.php index 61818abf69..8af6471353 100644 --- a/plugins/API/API.php +++ b/plugins/API/API.php @@ -183,21 +183,6 @@ class API extends \Piwik\Plugin\API $segments[] = array( 'type' => 'metric', 'category' => Piwik::translate('General_Visit'), - 'name' => 'General_NbActions', - 'segment' => 'actions', - 'sqlSegment' => 'log_visit.visit_total_actions', - ); - $segments[] = array( - 'type' => 'metric', - 'category' => Piwik::translate('General_Visit'), - 'name' => 'General_NbSearches', - 'segment' => 'searches', - 'sqlSegment' => 'log_visit.visit_total_searches', - 'acceptedValues' => 'To select all visits who used internal Site Search, use: &segment=searches>0', - ); - $segments[] = array( - 'type' => 'metric', - 'category' => Piwik::translate('General_Visit'), 'name' => 'General_ColumnVisitDuration', 'segment' => 'visitDuration', 'sqlSegment' => 'log_visit.visit_total_time', @@ -221,21 +206,6 @@ class API extends \Piwik\Plugin\API 'sqlSegment' => 'log_visit.visitor_days_since_last', ); $segments[] = array( - 'type' => 'metric', - 'category' => Piwik::translate('General_Visit'), - 'name' => 'General_DaysSinceFirstVisit', - 'segment' => 'daysSinceFirstVisit', - 'sqlSegment' => 'log_visit.visitor_days_since_first', - ); - $segments[] = array( - 'type' => 'metric', - 'category' => Piwik::translate('General_Visit'), - 'name' => 'General_NumberOfVisits', - 'segment' => 'visitCount', - 'sqlSegment' => 'log_visit.visitor_count_visits', - ); - - $segments[] = array( 'type' => 'dimension', 'category' => Piwik::translate('General_Visit'), 'name' => 'General_VisitConvertedGoal', 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 diff --git a/plugins/CoreHome/Columns/VisitFirstActionTime.php b/plugins/CoreHome/Columns/VisitFirstActionTime.php new file mode 100644 index 0000000000..e0b7078fb8 --- /dev/null +++ b/plugins/CoreHome/Columns/VisitFirstActionTime.php @@ -0,0 +1,36 @@ +<?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\CoreHome\Columns; + +use Piwik\Plugin\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; +use Piwik\Tracker; + +class VisitFirstActionTime extends VisitDimension +{ + protected $fieldName = 'visit_first_action_time'; + protected $fieldType = 'DATETIME NOT NULL'; + + public function getName() + { + return ''; + } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return Tracker::getDatetimeFromTimestamp($request->getCurrentTimestamp()); + } +}
\ No newline at end of file diff --git a/plugins/CoreHome/Columns/VisitLastActionTime.php b/plugins/CoreHome/Columns/VisitLastActionTime.php new file mode 100644 index 0000000000..5c45cb31a5 --- /dev/null +++ b/plugins/CoreHome/Columns/VisitLastActionTime.php @@ -0,0 +1,53 @@ +<?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\CoreHome\Columns; + +use Piwik\Plugin\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; +use Piwik\Tracker; + +class VisitLastActionTime extends VisitDimension +{ + protected $fieldName = 'visit_last_action_time'; + // we do not install or define column definition here as we need to create this column when installing as there is + // an index on it. Currently we do not define the index here... although we could overwrite the install() method + // and add column 'visit_last_action_time' and add index. Problem is there is also an index + // INDEX(idsite, config_id, visit_last_action_time) and we maybe not be sure whether config_id already exists at + // installing point (in case config_id is installed via dimension as well we do not know which column will be added + // first). + + public function getName() + { + return ''; + } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return Tracker::getDatetimeFromTimestamp($request->getCurrentTimestamp()); + } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onExistingVisit(Request $request, $visit, $action) + { + return $this->onNewVisit($request, $visit, $action); + } + +}
\ No newline at end of file diff --git a/plugins/CoreHome/Columns/VisitorDaysSinceFirst.php b/plugins/CoreHome/Columns/VisitorDaysSinceFirst.php new file mode 100644 index 0000000000..c418e6e764 --- /dev/null +++ b/plugins/CoreHome/Columns/VisitorDaysSinceFirst.php @@ -0,0 +1,45 @@ +<?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\CoreHome\Columns; + +use Piwik\Plugin\VisitDimension; +use Piwik\Plugins\CoreHome\Segment; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; + +class VisitorDaysSinceFirst extends VisitDimension +{ + protected $fieldName = 'visitor_days_since_first'; + protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL'; + + protected function init() + { + $segment = new Segment(); + $segment->setType(Segment::TYPE_METRIC); + $segment->setSegment('daysSinceFirstVisit'); + $segment->setName('General_DaysSinceFirstVisit'); + $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) + { + return $request->getDaysSinceFirstVisit(); + } +}
\ No newline at end of file diff --git a/plugins/CoreHome/Columns/VisitorDaysSinceOrder.php b/plugins/CoreHome/Columns/VisitorDaysSinceOrder.php new file mode 100644 index 0000000000..5597a426f7 --- /dev/null +++ b/plugins/CoreHome/Columns/VisitorDaysSinceOrder.php @@ -0,0 +1,41 @@ +<?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\CoreHome\Columns; + +use Piwik\Plugin\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; + +class VisitorDaysSinceOrder extends VisitDimension +{ + protected $fieldName = 'visitor_days_since_order'; + protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL'; + + public function getName() + { + return ''; + } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + $daysSinceLastOrder = $request->getDaysSinceLastOrder(); + + if ($daysSinceLastOrder === false) { + $daysSinceLastOrder = 0; + } + + return $daysSinceLastOrder; + } +}
\ No newline at end of file diff --git a/plugins/CoreHome/Columns/VisitsCount.php b/plugins/CoreHome/Columns/VisitsCount.php new file mode 100644 index 0000000000..6b900eefef --- /dev/null +++ b/plugins/CoreHome/Columns/VisitsCount.php @@ -0,0 +1,45 @@ +<?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\CoreHome\Columns; + +use Piwik\Plugin\VisitDimension; +use Piwik\Plugins\CoreHome\Segment; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; + +class VisitsCount extends VisitDimension +{ + protected $fieldName = 'visitor_count_visits'; + protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL'; + + public function getName() + { + return ''; + } + + protected function init() + { + $segment = new Segment(); + $segment->setType(Segment::TYPE_METRIC); + $segment->setSegment('visitCount'); + $segment->setName('General_NumberOfVisits'); + $this->addSegment($segment); + } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return $request->getVisitCount(); + } +}
\ No newline at end of file diff --git a/plugins/CoreHome/Segment.php b/plugins/CoreHome/Segment.php new file mode 100644 index 0000000000..7b6f2fbf57 --- /dev/null +++ b/plugins/CoreHome/Segment.php @@ -0,0 +1,21 @@ +<?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\CoreHome; + +/** + * CoreHome segment base class + */ +class Segment extends \Piwik\Plugin\Segment +{ + protected function init() + { + $this->setCategory('General_Visit'); + } +} + diff --git a/plugins/Events/Columns/TotalEvents.php b/plugins/Events/Columns/TotalEvents.php index 67ed9d7ae6..3d6ac9f33b 100644 --- a/plugins/Events/Columns/TotalEvents.php +++ b/plugins/Events/Columns/TotalEvents.php @@ -11,10 +11,13 @@ namespace Piwik\Plugins\Events\Columns; use Piwik\Piwik; use Piwik\Plugin\VisitDimension; use Piwik\Plugin\Segment; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; class TotalEvents extends VisitDimension -{ +{ protected $fieldName = 'visit_total_events'; + protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL'; protected function init() { @@ -31,4 +34,43 @@ class TotalEvents extends VisitDimension { return Piwik::translate('Events_EventName'); } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + if ($this->isEventAction($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->isEventAction($action)) { + return 'visit_total_events + 1'; + } + + return false; + } + + /** + * @param Action|null $action + * @return bool + */ + private function isEventAction($action) + { + return ($action && $action->getActionType() == Action::TYPE_EVENT); + } }
\ No newline at end of file diff --git a/plugins/UserSettings/Columns/Language.php b/plugins/UserSettings/Columns/Language.php index 120178ffb5..0345975639 100644 --- a/plugins/UserSettings/Columns/Language.php +++ b/plugins/UserSettings/Columns/Language.php @@ -10,11 +10,27 @@ namespace Piwik\Plugins\UserSettings\Columns; use Piwik\Piwik; use Piwik\Plugin\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; class Language extends VisitDimension -{ +{ + protected $fieldName = 'location_browser_lang'; + protected $fieldType = 'VARCHAR(20) NOT NULL'; + public function getName() { return Piwik::translate('General_Language'); } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return substr($request->getBrowserLanguage(), 0, 20); + } }
\ No newline at end of file diff --git a/plugins/UserSettings/Columns/Resolution.php b/plugins/UserSettings/Columns/Resolution.php index f9a5e1ee62..407daf7db4 100644 --- a/plugins/UserSettings/Columns/Resolution.php +++ b/plugins/UserSettings/Columns/Resolution.php @@ -11,10 +11,13 @@ namespace Piwik\Plugins\UserSettings\Columns; use Piwik\Piwik; use Piwik\Plugin\VisitDimension; use Piwik\Plugins\UserSettings\Segment; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; class Resolution extends VisitDimension { protected $fieldName = 'config_resolution'; + protected $fieldType = 'VARCHAR(9) NOT NULL'; protected function init() { @@ -25,6 +28,23 @@ class Resolution extends VisitDimension $this->addSegment($segment); } + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + $resolution = $request->getParam('res'); + + if (!empty($resolution)) { + return substr($resolution, 0, 9); + } + + return $resolution; + } + public function getName() { return Piwik::translate('UserSettings_ColumnResolution'); diff --git a/plugins/VisitTime/Columns/Localtime.php b/plugins/VisitTime/Columns/Localtime.php index f20dde3fed..6f0cc5f727 100644 --- a/plugins/VisitTime/Columns/Localtime.php +++ b/plugins/VisitTime/Columns/Localtime.php @@ -11,10 +11,13 @@ namespace Piwik\Plugins\VisitTime\Columns; use Piwik\Piwik; use Piwik\Plugin\VisitDimension; use Piwik\Plugins\VisitTime\Segment; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; class Localtime extends VisitDimension { protected $fieldName = 'visitor_localtime'; + protected $fieldType = 'TIME NOT NULL'; protected function init() { @@ -30,4 +33,15 @@ class Localtime extends VisitDimension { return Piwik::translate('VisitTime_ColumnLocalTime'); } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return $request->getLocalTime(); + } }
\ No newline at end of file diff --git a/plugins/VisitorInterest/Columns/Visitsbydayssincelastvisit.php b/plugins/VisitorInterest/Columns/Visitsbydayssincelastvisit.php index a114bf5476..075c6e7aae 100644 --- a/plugins/VisitorInterest/Columns/Visitsbydayssincelastvisit.php +++ b/plugins/VisitorInterest/Columns/Visitsbydayssincelastvisit.php @@ -10,11 +10,28 @@ namespace Piwik\Plugins\VisitorInterest\Columns; use Piwik\Piwik; use Piwik\Plugin\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; class Visitsbydayssincelastvisit extends VisitDimension -{ +{ + protected $fieldName = 'visitor_days_since_last'; + protected $fieldType = 'SMALLINT(5) UNSIGNED NOT NULL'; + public function getName() { return Piwik::translate('VisitorInterest_VisitsByDaysSinceLast'); } + + /** + * @param Request $request + * @param array $visit + * @param Action|null $action + * @return int + */ + public function onNewVisit(Request $request, $visit, $action) + { + return $request->getDaysSinceLastVisit(); + } + }
\ No newline at end of file |