| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Tracker; |
|
|
| use Piwik\Tracker\Visit\VisitProperties; |
|
|
| class Visitor |
| { |
| private $visitorKnown = false; |
|
|
| |
| |
| |
| public $visitProperties; |
|
|
| |
| |
| |
| public $previousVisitProperties; |
|
|
| public function __construct(VisitProperties $visitProperties, $isVisitorKnown = false, ?VisitProperties $previousVisitProperties = null) |
| { |
| $this->visitProperties = $visitProperties; |
| $this->previousVisitProperties = $previousVisitProperties; |
| $this->setIsVisitorKnown($isVisitorKnown); |
| } |
|
|
| public static function makeFromVisitProperties(VisitProperties $visitProperties, Request $request, ?VisitProperties $previousVisitProperties = null) |
| { |
| $isKnown = $request->getMetadata('CoreHome', 'isVisitorKnown'); |
| return new Visitor($visitProperties, $isKnown, $previousVisitProperties); |
| } |
|
|
| public function setVisitorColumn($column, $value) |
| { |
| $this->visitProperties->setProperty($column, $value); |
| } |
|
|
| public function getVisitorColumn($column) |
| { |
| if (array_key_exists($column, $this->visitProperties->getProperties())) { |
| return $this->visitProperties->getProperty($column); |
| } |
|
|
| return false; |
| } |
|
|
| |
| |
| |
| |
| |
| public function getImmutableVisitorColumn(string $column) |
| { |
| return $this->visitProperties->getImmutableProperty($column); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function initializeVisitorProperty(string $column, $value) |
| { |
| $this->visitProperties->initializeProperty($column, $value); |
| } |
|
|
| public function getPreviousVisitColumn($column) |
| { |
| if (empty($this->previousVisitProperties)) { |
| return false; |
| } |
|
|
| if (array_key_exists($column, $this->previousVisitProperties->getProperties())) { |
| return $this->previousVisitProperties->getProperty($column); |
| } |
|
|
| return false; |
| } |
|
|
| public function isVisitorKnown() |
| { |
| return $this->visitorKnown === true; |
| } |
|
|
| public function isNewVisit() |
| { |
| return !$this->isVisitorKnown(); |
| } |
|
|
| private function setIsVisitorKnown($isVisitorKnown) |
| { |
| return $this->visitorKnown = $isVisitorKnown; |
| } |
| } |
|
|