Ejemplo n.º 1
0
 static function GetInstance()
 {
     if (self::$instance == NULL) {
         self::$instance = new VisitedPage();
     }
     return self::$instance;
 }
Ejemplo n.º 2
0
 public static function GetInstance()
 {
     if (self::$instance == null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 * 
 * Все права защищены. (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;
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
function setVisitedPageClosed($pageid)
{
    VisitedPage::GetInstance()->UpdateVisitedPage($pageid, array("state" => VISITED_PAGE_CLOSED));
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
 function GetVisitSessionByPageId($pageid)
 {
     $vistedpage = VisitedPage::GetInstance()->GetVisitedPageById($pageid);
     return VisitSession::GetInstance()->GetVisitSessionById($vistedpage['visitsessionid']);
 }