diff options
Diffstat (limited to 'plugins/CoreHome/Columns/VisitorReturning.php')
-rw-r--r-- | plugins/CoreHome/Columns/VisitorReturning.php | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/plugins/CoreHome/Columns/VisitorReturning.php b/plugins/CoreHome/Columns/VisitorReturning.php index ca1ef11652..862fb12c6e 100644 --- a/plugins/CoreHome/Columns/VisitorReturning.php +++ b/plugins/CoreHome/Columns/VisitorReturning.php @@ -8,9 +8,9 @@ */ namespace Piwik\Plugins\CoreHome\Columns; +use Piwik\Metrics\Formatter; use Piwik\Piwik; use Piwik\Plugin\Dimension\VisitDimension; -use Piwik\Plugins\CoreHome\Segment; use Piwik\Tracker\Action; use Piwik\Tracker\Request; use Piwik\Tracker\Visitor; @@ -23,22 +23,44 @@ class VisitorReturning extends VisitDimension protected $columnName = 'visitor_returning'; protected $columnType = 'TINYINT(1) NULL'; + protected $segmentName = 'visitorType'; + protected $nameSingular = 'General_VisitType'; + protected $namePlural = 'General_VisitTypes'; protected $conversionField = true; + protected $type = self::TYPE_ENUM; - protected function configureSegments() + public function __construct() { - $acceptedValues = 'new, returning, returningCustomer. '; - $acceptedValues .= Piwik::translate('General_VisitTypeExample', '"&segment=visitorType==returning,visitorType==returningCustomer"'); - - $segment = new Segment(); - $segment->setSegment('visitorType'); - $segment->setName('General_VisitType'); - $segment->setAcceptedValues($acceptedValues); - $segment->setSqlFilterValue(function ($type) { + $this->acceptValues = 'new, returning, returningCustomer. '; + $this->acceptValues .= Piwik::translate('General_VisitTypeExample', '"&segment=visitorType==returning,visitorType==returningCustomer"'); + $this->sqlFilterValue = function ($type) { + if (is_numeric($type)) { + return $type; + } return $type == "new" ? 0 : ($type == "returning" ? 1 : 2); - }); + }; + } + + public function formatValue($value, $idSite, Formatter $formatter) + { + if ($value === 1 || $value === '1' || $value === 'returning') { + return Piwik::translate('CoreHome_VisitTypeReturning'); + } elseif ($value === 2 || $value === '2' || $value === 'returningCustomer'){ + return Piwik::translate('CoreHome_VisitTypeReturningCustomer'); + } elseif ($value === 0 || $value === '0' || $value === 'new'){ + return Piwik::translate('General_New'); + } - $this->addSegment($segment); + return $value; + } + + public function getEnumColumnValues() + { + return array( + self::IS_RETURNING_CUSTOMER => 'returningCustomer', + self::IS_RETURNING => 'returning', + self::IS_NEW => 'new', + ); } /** @@ -49,7 +71,6 @@ class VisitorReturning extends VisitDimension */ public function onNewVisit(Request $request, Visitor $visitor, $action) { - $daysSinceLastOrder = $request->getDaysSinceLastOrder(); $isReturningCustomer = ($daysSinceLastOrder !== false); |