static function GetInstance() { if (self::$instance == NULL) { self::$instance = new VisitedPage(); } return self::$instance; }
public static function GetInstance() { if (self::$instance == null) { self::$instance = new self(); } return self::$instance; }
function GetInvitationState($visitedpageid) { $visitedpage = VisitedPage::GetInstance()->GetVisitedPageById($visitedpageid); $state = INVITATION_UNINITIALIZED; if (!empty($visitedpage['invitationid'])) { $invitation = MapperFactory::getMapper("Invitation")->getById($visitedpage['invitationid']); $state = $invitation['state']; } return $state; }
* * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.visitsession.php'; require_once '../classes/class.visitedpage.php'; require_once '../classes/class.invitation.php'; $operator = Operator::getInstance()->GetLoggedOperator(); $pageId = verify_param('pageid', '/^([a-z0-9]{32})?$/', ''); if (empty($pageId)) { die('invalid or absent pageid'); } $visitSession = VisitSession::GetInstance()->GetVisitSessionByPageId($pageId); $remoteLevel = Browser::GetRemoteLevel($visitSession['useragent']); $thread = VisitedPage::GetInstance()->GetInvitationThread($pageId); if (empty($thread) || $thread['state'] == STATE_CLOSED) { $thread = Thread::getInstance()->CreateThread(WEBIM_CURRENT_LOCALE, STATE_INVITE, array('operatorfullname' => $operator['fullname'], 'operatorid' => $operator['operatorid'], 'visitsessionid' => $visitSession['visitsessionid'])); VisitSession::GetInstance()->UpdateVisitSession($visitSession['visitsessionid'], array('hasthread' => 1)); $introMessage = Resources::Get('invite.intro.message', array($visitSession['visitorname']), WEBIM_CURRENT_LOCALE); Thread::getInstance()->PostMessage($thread['threadid'], KIND_FOR_AGENT, $introMessage); $invitationId = Invitation::getInstance()->CreateInvitation($thread['threadid']); VisitedPage::GetInstance()->UpdateVisitedPage($pageId, array('invitationid' => $invitationId)); } header('Location: ' . WEBIM_ROOT . '/operator/agent.php?thread=' . $thread['threadid'] . '&token=' . $thread['token'] . '&level=' . $remoteLevel . '&force=false'); exit;
function BuildVisitorXml($visitor) { $xml = array(); $session = VisitSession::GetInstance()->GetVisitSessionById($visitor['visitsessionid']); $visitedPages = VisitedPage::GetInstance()->enumVisitedPagesByVisitSessionId($visitor['visitsessionid']); $landingPage = end($visitedPages); $props = array('visitedpageid' => $visitor['visitedpageid'], 'alive' => $visitor['alive']); $geodata = GeoIPLookup::getGeoDataByIP($session['ip']); //for testing purpose //$geodata = GeoIPLookup::getGeoDataByIP('89.113.218.99'); if ($geodata == NULL) { $geodata = array('city' => null, 'country' => null, 'lat' => null, 'lng' => null); } $visitor['visitorname'] = $session['visitorname']; $visitor['visitorid'] = $session['visitorid']; $nodes = array('uri' => isset($visitor['uri']) ? $visitor['uri'] : '', 'title' => empty($visitor['title']) ? isset($visitor['uri']) ? $visitor['uri'] : Resources::Get('visitors_list.no_title') : $visitor['title'], 'name' => removeSpecialSymbols($session['visitorname']), 'host' => $session['remotehost'], 'addr' => $session['ip'], 'stime' => (isset($visitor['opened']) ? $visitor['opened'] : '') . '000', 'visitinfoid' => $visitor['visitedpageid'], 'city' => $geodata['city'], 'country' => $geodata['country'], 'lat' => $geodata['lat'], 'lng' => $geodata['lng'], 'browser' => get_user_agent($session['useragent']), 'landingpage' => $landingPage['uri'], 'landingpagetitle' => empty($landingPage['title']) ? isset($visitor['uri']) ? $visitor['uri'] : Resources::Get('visitors_list.no_title') : $landingPage['title'], 'landingpageref' => isset($visitor['referrer']) ? $visitor['referrer'] : '', 'landingpagereflink' => parseReferrer(isset($visitor['referrer']) ? $visitor['referrer'] : '', 'visitors_list.referrer'), 'other' => '', 'locale' => MapperFactory::getMapper("Thread")->getLocaleByVisitSessionId($session['visitsessionid'])); $xml[] = '<visitor ' . self::xmlParamsToProperties($props) . '>'; $xml[] = self::xmlParamsToNodes($nodes); $xml[] = '</visitor>'; return join("\n", $xml); }
function setVisitedPageClosed($pageid) { VisitedPage::GetInstance()->UpdateVisitedPage($pageid, array("state" => VISITED_PAGE_CLOSED)); }
require_once '../classes/class.pagination.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.geoiplookup.php'; $operator = Operator::getInstance()->GetLoggedOperator(); $visitSession = null; if (isset($_GET['visitsessionid'])) { $visitSession = VisitSession::GetInstance()->GetVisitSessionById($_GET['visitsessionid']); } elseif (isset($_GET['pageid'])) { $visitdpageid = verify_param("pageid", "/^[a-z0-9]{32}\$/"); $vistedpage = VisitedPage::GetInstance()->GetVisitedPageById($_GET['pageid']); $visitSession = VisitSession::GetInstance()->GetVisitSessionById($vistedpage['visitsessionid']); } if (empty($visitSession)) { die("Invalid or no visitsessionid or pageid"); } $visitedPages = VisitedPage::GetInstance()->enumVisitedPagesByVisitSessionId($visitSession['visitsessionid']); $landingPage = end($visitedPages); $exitPage = reset($visitedPages); $timeend = 0; $timestart = 0; foreach ($visitedPages as $k => $vp) { $timeend = $timeend == 0 ? $vp['updated'] : max($timeend, $vp['updated']); $timestart = $timestart == 0 ? $vp['opened'] : min($timestart, $vp['opened']); $visitedPages[$k]['sessionduration'] = $vp['updated'] - $vp['opened']; } $geodata = GeoIPLookup::getGeoDataByIP($visitSession['ip']); //for testing purpose //$geodata = GeoIPLookup::getGeoDataByIP('89.113.218.99'); if ($geodata == NULL) { $geodata = array('city' => null, 'country' => null, 'lat' => null, 'lng' => null); }
function GetVisitSessionByPageId($pageid) { $vistedpage = VisitedPage::GetInstance()->GetVisitedPageById($pageid); return VisitSession::GetInstance()->GetVisitSessionById($vistedpage['visitsessionid']); }