function processClosures() { global $INTERNAL, $CONFIG; if (isset($_POST[POST_INTERN_PROCESS_CLOSURES . "_va"])) { $users = explode(POST_ACTION_VALUE_SPLITTER, utf8_decode($_POST[POST_INTERN_PROCESS_CLOSURES . "_va"])); $types = explode(POST_ACTION_VALUE_SPLITTER, utf8_decode($_POST[POST_INTERN_PROCESS_CLOSURES . "_vb"])); $browsers = explode(POST_ACTION_VALUE_SPLITTER, utf8_decode($_POST[POST_INTERN_PROCESS_CLOSURES . "_vc"])); $ids = explode(POST_ACTION_VALUE_SPLITTER, utf8_decode($_POST[POST_INTERN_PROCESS_CLOSURES . "_vd"])); foreach ($users as $key => $userid) { $chat = new VisitorChat($userid, $browsers[$key]); $chat->Load(); $chat->ChatId = $ids[$key]; if ($types[$key] == CHAT_CLOSED) { $chat->InternalClose(); } else { if ($types[$key] == CHAT_DECLINED) { $chat->InternalDecline(CALLER_SYSTEM_ID); } } } } }
function LoadBrowsers($_outdated = false) { global $CONFIG; $this->Browsers = array(); $limiter = !$_outdated ? " AND `last_active` > " . (time() - $CONFIG["timeout_track"]) . " " : ""; if ($result = queryDB(true, "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITOR_BROWSERS . "` WHERE `visit_id`='" . @mysql_real_escape_string($this->VisitId) . "' AND `visitor_id`='" . @mysql_real_escape_string($this->UserId) . "'" . $limiter . "ORDER BY `created` ASC;")) { while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { if (empty($row["is_chat"])) { $browser = new VisitorBrowser($row["id"], $row["visitor_id"]); $browser->Query = !empty($row["query"]) ? getIdValue(DATABASE_VISITOR_DATA_QUERIES, "query", $row["query"]) : ""; $browser->Email = $row["email"]; $browser->Fullname = $row["fullname"]; $browser->Company = $row["company"]; $browser->Customs = @unserialize($row["customs"]); $browser->LastUpdate = $row["last_update"]; } else { $browser = new VisitorChat($row["visitor_id"], $row["id"]); $browser->Load(); } if (count($browser->History) > 0) { $this->Browsers[$row["id"]] = $browser; $this->Browsers[$row["id"]]->LastActive = $row["last_active"]; } } } }
$EXTERNALUSER->Save($CONFIG, null, "", "", -522, -522, "", "", "", "", "", "", "", false); } else { abortTracking(-1); } } if ($EXTERNALUSER->IsCrawler) { 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();
function processChatActions() { global $INTERNAL, $RVISITOR; $count = 0; while (isset($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_va"])) { $type = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vd"]; if ($type == "OperatorSignOff") { $op = $INTERNAL[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]]; $op->SignOff(); } else { if ($type == "SendChatTranscriptTo") { $value = 1; while (!empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_" . $value])) { queryDB(true, "UPDATE `" . DB_PREFIX . DATABASE_CHAT_ARCHIVE . "` SET `transcript_sent`=0,`transcript_receiver`='" . DBManager::RealEscape($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]) . "' WHERE `transcript_sent`=1 AND `chat_id`='" . DBManager::RealEscape($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_" . $value]) . "' LIMIT 1;"); $value++; } sendChatTranscripts(true); } else { if ($type == "CreatePublicGroup") { $room = new UserGroup(); $room->IsDynamic = true; $room->Id = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $room->Descriptions["EN"] = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]; $room->Owner = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]; $room->Save(); $room->AddMember($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"], !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_3"])); } else { if ($type == "DeletePublicGroup") { $room = new UserGroup(); $room->Id = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $room->Destroy(); } else { if ($type == "JoinPublicGroup") { $room = new UserGroup(); $room->Id = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $room->AddMember($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"], !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_3"])); } else { if ($type == "QuitPublicGroup") { $room = new UserGroup(); $room->Id = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $room->RemoveMember($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]); } else { if ($type == "StartOverlayChat") { $chat = new VisitorChat($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_va"], $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vb"]); $chat->RequestInitChat(CALLER_SYSTEM_ID); } else { if ($type == "AddVisitorComment") { $visitor = new Visitor($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); $visitor->SaveComment(CALLER_SYSTEM_ID, $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]); } else { if ($type == "DownloadRecentHistory") { $RVISITOR = new Visitor($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); $RVISITOR->LoadRecentVisits(true, $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]); } else { if ($type == "SetTranslation") { $chat = new VisitorChat($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_va"], $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vb"]); $chat->ChatId = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $chat->SetTranslation($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]); } else { if ($type == "SetChatTicketParam") { $ticket = new CommercialChatVoucher("", $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); $ticket->Load(); $ticket->SetVoucherParams(!empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_1"]), !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]), !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_3"]), !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_4"]), !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_5"]), !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_6"])); } else { if (strlen($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vb"]) > 0 && strlen($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_va"]) > 0) { $chat = new VisitorChat($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_va"], $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vb"]); $chat->ChatId = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_vc"]; $chat->Load(); if ($type == "SetCallMeBackStatus") { $chat->SetCallMeBackStatus($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); } else { if ($type == "JoinChatInvisible") { $chat->JoinChat(CALLER_SYSTEM_ID, true, !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"])); } else { if ($type == "JoinChat") { $chat->JoinChat(CALLER_SYSTEM_ID, false, !empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"])); } else { if ($type == "SetPriority") { $chat->SetPriority($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); } else { if ($type == "SetTargetOperator") { $chat->SetTargetOperator($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); } else { if ($type == "SetTargetGroup") { $chat->SetTargetGroup($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); } else { if ($type == "AcceptChat") { $chat->InternalActivate(); } else { if ($type == "CloseChat") { $chat->InternalClose(CALLER_SYSTEM_ID); } else { if ($type == "TakeChat") { $chat->TakeChat(CALLER_SYSTEM_ID, $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]); } else { if ($type == "DeclineChat") { $chat->InternalDecline(CALLER_SYSTEM_ID); } else { if ($type == "LeaveChat") { $chat->LeaveChat(CALLER_SYSTEM_ID); } } } } } } } } } } } } } } } } } } } } } } } $count++; } }
static function FromCache($_uid, $_bid) { global $CM, $VISITOR; if (!empty($CM)) { initData(array("VISITOR")); if (isset($VISITOR[$_uid])) { foreach ($VISITOR[$_uid]->Browsers as $browser) { if ($browser->BrowserId == $_bid) { return $browser; } } } } $br = new VisitorChat($_uid, $_bid); $br->Load(); return $br; }
$html = str_replace("<!--SO_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[1]) ? " style=\"display:none;\"" : "", $html); $html = str_replace("<!--PR_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[2]) ? " style=\"display:none;\"" : "", $html); $html = str_replace("<!--RA_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[3]) ? " style=\"display:none;\"" : "", $html); $html = str_replace("<!--FV_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[4]) ? " style=\"display:none;\"" : "", $html); $html = str_replace("<!--FU_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[5]) ? " style=\"display:none;\"" : "", $html); } } else { if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.chat.1.0") { $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl"); if (isset($_POST[POST_EXTERN_USER_USERID])) { if (STATS_ACTIVE) { initStatisticProvider(); } $externalUser = new Visitor($_POST[POST_EXTERN_USER_USERID]); $externalChat = new VisitorChat($externalUser->UserId, $_POST[POST_EXTERN_USER_BROWSERID]); $externalChat->Load(); if (isset($_FILES["userfile"]) && $externalUser->StoreFile($_POST[POST_EXTERN_USER_BROWSERID], $externalChat->DesiredChatPartner, $externalChat->Fullname)) { $command = "top.lz_chat_file_ready();"; } else { if (isset($_FILES['userfile'])) { $command = "top.lz_chat_file_error(2);"; } else { $command = ""; } } } else { if (isset($_GET["file"])) { $command = "top.lz_chat_file_error(2);"; } else { $command = ""; }
static function FromCache($_uid, $_bid) { if (!empty(CacheManager::$ActiveManager)) { Server::InitDataBlock(array("VISITOR")); if (isset(Server::$Visitors[$_uid])) { foreach (Server::$Visitors[$_uid]->Browsers as $browser) { if ($browser->BrowserId == $_bid) { return $browser; } } } } $br = new VisitorChat($_uid, $_bid); $br->Load(); return $br; }