static function RunCronJobs() { Server::InitDataBlock(array("DBCONFIG")); $timeouts = array(Server::$Configuration->File["poll_frequency_clients"] * 10, 86400, 86400 * 7, DATA_LIFETIME); $randoms = array(0 => 600, 1 => 300, 2 => 20); $randStandard = rand(1, $randoms[0]); if ($randStandard < 5) { require_once LIVEZILLA_PATH . "_lib/functions.internal.optimize.inc.php"; DatabaseMaintenance::Maintain($randStandard, $timeouts); } if (rand(1, $randoms[2]) == 1) { if (empty(Server::$Configuration->File["gl_rm_chats"]) || !empty(Server::$Configuration->File["gl_rm_chats_time"])) { Communication::SendChatTranscripts(); } } if (rand(1, $randoms[2] - count(Server::$Configuration->Database["gl_email"])) <= 1) { Communication::DownloadEmails(false); } if (rand(1, $randoms[2] - count(Server::$Configuration->Database["gl_sm"])) <= 1) { Communication::DownloadSocialMedia(false); } }
function processChatActions() { global $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 = Server::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]]; $op->SignOff(); CacheManager::FlushKey(DATA_CACHE_KEY_OPERATORS); } else { if ($type == "SendChatTranscriptTo") { $value = 1; while (!empty($_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_" . $value])) { DBManager::Execute(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++; } Communication::SendChatTranscripts(true); } else { if ($type == "CreatePublicGroup") { if (isset(SERVER::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]]) && SERVER::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]]->ClientWeb) { continue; } $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"], false); CacheManager::FlushKey(DATA_CACHE_KEY_OPERATORS); CacheManager::FlushKey(DATA_CACHE_KEY_GROUPS); } else { if ($type == "DeletePublicGroup") { $room = new UserGroup(); $room->Id = $_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_0"]; $room->Destroy(); CacheManager::FlushKey(DATA_CACHE_KEY_OPERATORS); } else { if ($type == "JoinPublicGroup") { if (isset(SERVER::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]])) { if (!SERVER::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]]->ClientWeb || SERVER::$Operators[$_POST[POST_INTERN_PROCESS_CHAT_ACTION . "_" . $count . "_ve_2"]]->Status == USER_STATUS_OFFLINE) { $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"], false); CacheManager::FlushKey(DATA_CACHE_KEY_OPERATORS); } } } 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"]); CacheManager::FlushKey(DATA_CACHE_KEY_OPERATORS); } 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++; } }