function Save()
 {
     global $CONFIG;
     $_new = func_num_args() > 0 ? func_get_arg(0) : false;
     if ($_new) {
         $this->FirstCall = true;
         $this->Status = CHAT_STATUS_OPEN;
     }
     if (empty($this->FirstActive)) {
         $this->FirstActive = time();
     }
     if ($this->FirstCall) {
         queryDB(false, "INSERT INTO `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` (`visitor_id` ,`browser_id` ,`visit_id` ,`fullname` ,`email` ,`company` ,`typing` ,`area_code` ,`first_active` ,`last_active` ,`request_operator` ,`request_group` ,`question` ,`customs` ) VALUES ('" . @mysql_real_escape_string($this->UserId) . "','" . @mysql_real_escape_string($this->BrowserId) . "','" . @mysql_real_escape_string($this->VisitId) . "','" . @mysql_real_escape_string($this->Fullname) . "','" . @mysql_real_escape_string($this->Email) . "','" . @mysql_real_escape_string($this->Company) . "',0,'" . @mysql_real_escape_string($this->Code) . "','" . @mysql_real_escape_string($this->FirstActive) . "','" . @mysql_real_escape_string($this->LastActive) . "','" . @mysql_real_escape_string($this->DesiredChatPartner) . "','" . @mysql_real_escape_string($this->DesiredChatGroup) . "','" . @mysql_real_escape_string($this->Question) . "','" . @mysql_real_escape_string(serialize($this->Customs)) . "');");
     } else {
         queryDB(true, "UPDATE `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` SET `typing`='" . @mysql_real_escape_string($this->Typing ? 1 : 0) . "',`customs`='" . @mysql_real_escape_string(serialize($this->Customs)) . "',`request_operator`='" . @mysql_real_escape_string($this->DesiredChatPartner) . "',`request_group`='" . @mysql_real_escape_string($this->DesiredChatGroup) . "',`last_active`='" . @mysql_real_escape_string(time()) . "' WHERE `browser_id`='" . @mysql_real_escape_string($this->BrowserId) . "' AND `visitor_id`='" . @mysql_real_escape_string($this->UserId) . "' AND `chat_id`='" . @mysql_real_escape_string($this->ChatId) . "' LIMIT 1;");
     }
     parent::Save();
     if (count($this->History) == 0) {
         $this->History[0] = new HistoryUrl(LIVEZILLA_URL . FILE_CHAT, $this->Code, $CONFIG["gl_site_name"], "", $this->FirstActive);
         $this->History[0]->Save($this->BrowserId);
     }
 }
 function Save()
 {
     global $CONFIG;
     if (empty($this->UserId)) {
         return;
     }
     $_new = func_num_args() > 0 ? func_get_arg(0) : false;
     if ($_new) {
         $this->FirstCall = true;
         $this->Status = CHAT_STATUS_OPEN;
     }
     if (empty($this->FirstActive)) {
         $this->FirstActive = time();
     }
     if ($this->FirstCall) {
         queryDB(true, "INSERT IGNORE INTO `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` (`visitor_id` ,`browser_id` ,`visit_id` ,`priority`,`fullname` ,`email` ,`company` , `phone`, `call_me_back`, `typing` ,`area_code` ,`first_active` ,`last_active` ,`request_operator` ,`request_group` ,`question` ,`customs`, `chat_ticket_id`, `queue_posts`) VALUES ('" . DBManager::RealEscape($this->UserId) . "','" . DBManager::RealEscape($this->BrowserId) . "','" . DBManager::RealEscape($this->VisitId) . "','" . DBManager::RealEscape($this->Priority) . "','" . DBManager::RealEscape($this->Fullname) . "','" . DBManager::RealEscape($this->Email) . "','" . DBManager::RealEscape($this->Company) . "','" . DBManager::RealEscape($this->Phone) . "'," . DBManager::RealEscape($this->CallMeBack ? 1 : 0) . ",0,'" . DBManager::RealEscape($this->Code) . "','" . DBManager::RealEscape($this->FirstActive) . "','" . DBManager::RealEscape($this->LastActive) . "','" . DBManager::RealEscape($this->DesiredChatPartner) . "','" . DBManager::RealEscape($this->DesiredChatGroup) . "','" . DBManager::RealEscape($this->Question) . "','" . DBManager::RealEscape(serialize($this->Customs)) . "','" . DBManager::RealEscape($this->ChatVoucherId) . "','" . DBManager::RealEscape(serialize($this->QueuedPosts)) . "');");
     } else {
         queryDB(true, "UPDATE `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` SET `typing`='" . DBManager::RealEscape($this->Typing ? 1 : 0) . "',`queue_message_shown`='" . DBManager::RealEscape($this->QueueMessageShown ? 1 : 0) . "',`archive_created`='" . DBManager::RealEscape($this->ArchiveCreated ? 1 : 0) . "',`customs`='" . DBManager::RealEscape(serialize($this->Customs)) . "',`queue_posts`='" . DBManager::RealEscape(serialize($this->QueuedPosts)) . "',`request_operator`='" . DBManager::RealEscape($this->DesiredChatPartner) . "',`chat_ticket_id`='" . DBManager::RealEscape($this->ChatVoucherId) . "',`request_group`='" . DBManager::RealEscape($this->DesiredChatGroup) . "',`last_active`='" . DBManager::RealEscape(time()) . "',`email`='" . DBManager::RealEscape($this->Email) . "' WHERE `browser_id`='" . DBManager::RealEscape($this->BrowserId) . "' AND `visitor_id`='" . DBManager::RealEscape($this->UserId) . "' AND `chat_id`='" . DBManager::RealEscape($this->ChatId) . "' LIMIT 1;");
     }
     parent::Save();
     if (count($this->History) == 0) {
         $this->History[0] = new HistoryUrl(LIVEZILLA_URL . FILE_CHAT, $this->Code, $CONFIG["gl_site_name"], "", $this->FirstActive);
         $this->History[0]->Save($this->BrowserId, true);
     }
 }
Example #3
0
     abortTracking(8);
 } else {
     if ($EXTERNALUSER->SignatureMismatch) {
         $TRACKINGSCRIPT = "lz_tracking_set_sessid(\"" . htmlentities($EXTERNALUSER->UserId) . "\",\"" . htmlentities(CALLER_BROWSER_ID) . "\");";
         $TRACKINGSCRIPT .= "lz_tracking_callback(1);";
         $TRACKINGSCRIPT .= "lz_tracking_poll_server();";
     } else {
         if (isset($_GET[GET_TRACK_CLOSE_CHAT_WINDOW])) {
             $chat = new VisitorChat($EXTERNALUSER->UserId, $_GET[GET_TRACK_CLOSE_CHAT_WINDOW]);
             $chat->Load();
             $chat->ExternalClose();
             $chat->Destroy();
         }
         $BROWSER->LastActive = time();
         $BROWSER->VisitId = $EXTERNALUSER->VisitId;
         $BROWSER->Save($EXTERNALUSER, @$_GET[GET_TRACK_URL]);
         if (isset($currentURL) && (count($BROWSER->History) == 0 || count($BROWSER->History) > 0 && $BROWSER->History[count($BROWSER->History) - 1]->Url->GetAbsoluteUrl() != $currentURL->Url->GetAbsoluteUrl())) {
             $BROWSER->History[] = $currentURL;
             if (!isnull($BROWSER->History[count($BROWSER->History) - 1]->Referrer->GetAbsoluteUrl())) {
                 if ($BROWSER->SetQuery($BROWSER->History[count($BROWSER->History) - 1]->Referrer->GetAbsoluteUrl())) {
                     $BROWSER->History[count($BROWSER->History) - 1]->Referrer->MarkSearchEngine();
                 }
             }
             $BROWSER->History[count($BROWSER->History) - 1]->Save(CALLER_BROWSER_ID);
             $BROWSER->ForceUpdate();
         } else {
             if (count($BROWSER->History) == 0) {
                 abortTracking(11);
             }
         }
         $BROWSER->LoadWebsitePush();
 function Save()
 {
     if (empty($this->UserId)) {
         return;
     }
     $_new = func_num_args() > 0 ? func_get_arg(0) : false;
     if ($_new) {
         $this->FirstCall = true;
         $this->Status = CHAT_STATUS_OPEN;
     }
     if (empty($this->ChatId) && empty(Server::$Configuration->File["gl_save_op"])) {
         $this->DesiredChatPartner = "";
     }
     if (empty($this->FirstActive)) {
         $this->FirstActive = time();
     }
     if ($this->FirstCall) {
         DBManager::Execute(true, "INSERT IGNORE INTO `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` (`visitor_id`,`browser_id`,`visit_id`,`priority`,`call_me_back`, `typing` ,`area_code` ,`first_active` ,`last_active` ,`request_operator` ,`request_group` , `chat_ticket_id`, `queue_posts`) VALUES ('" . DBManager::RealEscape($this->UserId) . "','" . DBManager::RealEscape($this->BrowserId) . "','" . DBManager::RealEscape($this->VisitId) . "','" . DBManager::RealEscape($this->Priority) . "'," . DBManager::RealEscape($this->CallMeBack ? 1 : 0) . ",0,'" . DBManager::RealEscape($this->Code) . "','" . DBManager::RealEscape($this->FirstActive) . "','" . DBManager::RealEscape($this->LastActive) . "','" . DBManager::RealEscape($this->DesiredChatPartner) . "','" . DBManager::RealEscape($this->DesiredChatGroup) . "','" . DBManager::RealEscape($this->ChatVoucherId) . "','" . DBManager::RealEscape(serialize($this->QueuedPosts)) . "');");
     } else {
         DBManager::Execute(true, "UPDATE `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` SET `typing`='" . DBManager::RealEscape($this->Typing ? 1 : 0) . "',`queue_message_shown`='" . DBManager::RealEscape($this->QueueMessageShown ? 1 : 0) . "',`archive_created`=" . intval($this->ArchiveCreated) . ",`queue_posts`='" . DBManager::RealEscape(serialize($this->QueuedPosts)) . "',`request_operator`='" . DBManager::RealEscape($this->DesiredChatPartner) . "',`chat_ticket_id`='" . DBManager::RealEscape($this->ChatVoucherId) . "',`request_group`='" . DBManager::RealEscape($this->DesiredChatGroup) . "',`last_active`='" . DBManager::RealEscape(time()) . "' WHERE `browser_id`='" . DBManager::RealEscape($this->BrowserId) . "' AND `visitor_id`='" . DBManager::RealEscape($this->UserId) . "' AND `chat_id`='" . DBManager::RealEscape($this->ChatId) . "' LIMIT 1;");
     }
     parent::Save();
     if (count($this->History) == 0) {
         $url = Visitor::GetLastURLFromVisitor($this->UserId);
         if (empty($url)) {
             $this->History[0] = new HistoryUrl(LIVEZILLA_URL . FILE_CHAT, $this->Code, Server::$Configuration->File["gl_site_name"], "", $this->FirstActive);
         } else {
             $this->History[0] = new HistoryUrl($url, "", "", "", $this->FirstActive);
         }
         $this->History[0]->Save($this->BrowserId, true);
     }
 }