private function initTodayVisitors() { $loginHistoryManager = LoginHistoryManager::getInstance($this->config, $this->args); $todayVisitors = $loginHistoryManager->getTodayVisitors(); list($guestVisitors, $userVisitors, $companyVisitors, $serviceCompanyVisitors, $adminVisitors) = $this->filterVisitorsByType($todayVisitors); $this->addParam('today_visitors', $todayVisitors); $this->addParam('today_guest_visitors', $guestVisitors); $this->addParam('today_user_visitors', $userVisitors); $this->addParam('today_company_visitors', $companyVisitors); $this->addParam('today_service_company_visitors', $serviceCompanyVisitors); $this->addParam('today_admin_visitors', $adminVisitors); }
public function addOnlineUser($userLevel, $customerDto) { $browserInfo = $this->getBrowser(); // if ($browserInfo["name"] === 'Unknown') { // return false; // } $userEmail = ''; if (isset($customerDto)) { $userEmail = $customerDto->getEmail(); } //last ping time set for customer $previousPing = null; switch ($userLevel) { case UserGroups::$ADMIN: $adminManager = AdminManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $adminManager->setLastPingToNow($customerDto->getId()); break; case UserGroups::$COMPANY: $companyManager = CompanyManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $companyManager->setLastPingToNow($customerDto->getId($customerDto->getId())); break; case UserGroups::$USER: $userManager = UserManager::getInstance($this->config, $this->args); $previousPing = $customerDto->getLastPing(); $userManager->setLastPingToNow($customerDto->getId($customerDto->getId())); break; } if (isset($customerDto)) { $onlineUser = $this->getOnlineUserByEmail($userEmail); if (isset($onlineUser)) { $this->updateOnlineUserAttributes($onlineUser); return false; } } $guest_online_table_id = $_COOKIE['guest_online_table_id']; $oldRow = $this->selectByPK($guest_online_table_id); $ip = $_SERVER["REMOTE_ADDR"]; $host = gethostbyaddr($_SERVER['REMOTE_ADDR']); $country = $_SERVER["GEOIP_COUNTRY_NAME"]; $browser = $browserInfo["name"]; $browserVersion = $browserInfo["version"]; $platform = $browserInfo["platform"]; $status = "online"; if ($browser != 'Unknown' && $platform != 'Unknown' && $browserVersion != '?') { if (!isset($oldRow)) { $dto = $this->mapper->createDto(); } else { $dto = $oldRow; } $dto->setEmail($userEmail); $dto->setIp($ip); $dto->setHost($host); $dto->setCountry($country); $dto->setBrowserName($browser); $dto->setBrowserVersion($browserVersion); $dto->setBrowserPlatform($platform); $dto->setLoginDateTime(date('Y-m-d H:i:s')); $dto->setStatus($status); if (!isset($oldRow)) { $id = $this->mapper->insertDto($dto); } else { $this->mapper->updateByPK($dto); $id = $dto->getId(); } } $loginHistoryManager = LoginHistoryManager::getInstance($this->config, $this->args); $ulstring = $this->getUserLevelString($userLevel); $loginHistoryManager->addRow($userEmail, $ulstring, $ip, $host, $country, $browser, $browserVersion, $platform); $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args); $customerMessagesAfterLoginManager->addCustomerMessagesAfterLoginByPreviousPing($customerDto, $userLevel, $previousPing); return $id; }