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"];
             }
         }
     }
 }
Пример #3
0
         $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;
 }
Пример #6
0
         $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;
 }