예제 #1
0
function isChat()
{
    define("SESSION", getSessionId());
    Server::InitDataBlock(array("FILTERS"));
    define("IS_FLOOD", Filter::IsFlood(Communication::GetIP(), null, true));
    define("IS_FILTERED", DataManager::$Filters->Match(Communication::GetIP(), LocalizationManager::ImplodeLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), SESSION));
    $parameters = Communication::GetTargetParameters();
    if (operatorsAvailable(0, $parameters["exclude"], $parameters["include_group"], $parameters["include_user"]) > 0) {
        return true;
    }
    return false;
}
예제 #2
0
        $groupbuilder = new GroupBuilder();
        $groupbuilder->Generate();
        if (!$groupbuilder->GroupAvailable) {
            exit("<html><script language=\"JavaScript\">if(typeof(window.opener != null) != 'undefined')window.opener.location = \"" . Server::$Configuration->File["gl_om_http"] . "\";window.close();</script></html>");
        }
    } else {
        Server::InitDataBlock(array("FILTERS"));
    }
    if (isset($_POST["company"]) && !empty($_POST["company"]) || isset($_POST["email"]) && !empty($_POST["email"]) || isset($_POST["name"]) && !empty($_POST["name"]) || isset($_POST["text"]) && !empty($_POST["text"])) {
        exit(Filter::CreateFloodFilter(Communication::GetIP(), null));
    }
}
header("Content-Type: text/html; charset=utf-8");
if (!isset($_GET[GET_EXTERN_TEMPLATE])) {
    define("IS_FLOOD", Filter::IsFlood(Communication::GetIP(), null, true));
    define("IS_FILTERED", DataManager::$Filters->Match(Communication::GetIP(), LocalizationManager::ImplodeLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), SESSION));
    require LIVEZILLA_PATH . "_lib/trdp/mobde.php";
    $MobileDetect = new Mobile_Detect();
    Server::InitDataBlock(array("INTERNAL", "DBCONFIG"));
    VisitorChat::ApplyDynamicGroup();
    $html = IOStruct::GetFile(TEMPLATE_HTML_CHAT);
    $html = str_replace("<!--extern_script-->", IOStruct::GetFile(TEMPLATE_SCRIPT_EXTERN) . IOStruct::GetFile(TEMPLATE_SCRIPT_DATA) . IOStruct::GetFile(TEMPLATE_SCRIPT_CHAT) . IOStruct::GetFile(TEMPLATE_SCRIPT_FRAME), $html);
    $html = str_replace("<!--server_id-->", substr(md5(Server::$Configuration->File["gl_lzid"]), 5, 5), $html);
    $html = str_replace("<!--connector_script-->", IOStruct::GetFile(TEMPLATE_SCRIPT_CONNECTOR), $html);
    $html = str_replace("<!--group_script-->", IOStruct::GetFile(TEMPLATE_SCRIPT_GROUPS), $html);
    $html = str_replace("<!--global_script-->", IOStruct::GetFile(TEMPLATE_SCRIPT_GLOBAL), $html);
    $html = str_replace("<!--browser_id-->", $browserId, $html);
    $html = str_replace("<!--extern_timeout-->", min(Server::$Configuration->File["timeout_chats"], Server::$Configuration->File["timeout_track"]), $html);
    $html = str_replace("<!--show_oib-->", To::BoolString(!empty(Server::$Configuration->File["gl_soib"]) && empty($_GET[GET_EXTERN_DYNAMIC_GROUP])), $html);
    $html = str_replace("<!--window_width-->", Server::$Configuration->File["wcl_window_width"], $html);
    $html = str_replace("<!--window_height-->", Server::$Configuration->File["wcl_window_height"], $html);
예제 #3
0
} else {
    Visitor::$PollCount = Communication::ReadParameter("pc", 0);
    VisitorMonitoring::$Response = "lz_tracking_set_sessid(\"" . base64_encode(CALLER_USER_ID) . "\",\"" . base64_encode(CALLER_BROWSER_ID) . "\");";
    if (BaseURL::IsInputURL() && strpos(BaseURL::GetInputURL(), "lzmobile") !== false && Visitor::$PollCount == 1) {
        exit("eval(lz_global_base64_decode('" . base64_encode(IOStruct::GetFile(PATH_TEMPLATES . "jscript/jstrack.mob.tpl")) . "'));lz_tracking_stop_tracking(75);");
    }
    if (BaseURL::IsInputURL() && strpos(BaseURL::GetInputURL(), GET_INTERN_COBROWSE) !== false) {
        VisitorMonitoring::Abort(1);
    }
    VisitorMonitoring::$Browser = new VisitorBrowser(CALLER_BROWSER_ID, CALLER_USER_ID);
    VisitorMonitoring::$Visitor->AddBrowser(VisitorMonitoring::$Browser);
    if (VisitorMonitoring::$Visitor->FirstCall && !VisitorMonitoring::$Browser->GetFirstCall()) {
        VisitorMonitoring::$Visitor->FirstCall = false;
    }
    Server::InitDataBlock(array("FILTERS", "EVENTS"));
    define("IS_FILTERED", DataManager::$Filters->Match(Communication::GetIP(), LocalizationManager::ImplodeLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), CALLER_USER_ID, VisitorMonitoring::$Visitor->GeoCountryISO2));
    define("IS_FLOOD", VisitorMonitoring::$Browser->GetFirstCall() && Filter::IsFlood(Communication::GetIP(), CALLER_USER_ID));
    Server::InitDataBlock(array("INTERNAL"));
    $deactp = Communication::ReadParameter("deactr", 0);
    if (IS_FILTERED && !FILTER_ALLOW_TRACKING || IS_FLOOD || !empty($deactp) || Cookie::Get(OO_TRACKING_FILTER_NAME) != null) {
        if (!IS_FILTERED) {
            Filter::Create($_SERVER["REMOTE_ADDR"], CALLER_USER_ID, OO_TRACKING_FILTER_NAME, !empty($deactp) ? $deactp : 365, true, true);
        }
        VisitorMonitoring::LoadOverlayChat();
        VisitorMonitoring::$IsActive = false;
        VisitorMonitoring::Abort(556);
    }
    VisitorMonitoring::$Browser->UserData->LoadFromPassThru();
    if (JAVASCRIPT) {
        if (Visitor::$PollCount <= 3) {
            if (!BaseURL::IsInputURL()) {
예제 #4
0
***************************************************************************************/
if (!defined("IN_LIVEZILLA")) {
    die;
}
require LIVEZILLA_PATH . "_lib/objects.external.inc.php";
require LIVEZILLA_PATH . "_lib/functions.external.inc.php";
if (isset($_POST[POST_EXTERN_SERVER_ACTION])) {
    LocalizationManager::AutoLoad();
    Server::InitDataBlock(array("FILTERS", "INPUTS"));
    VisitorChat::$Router = new ChatRouter();
    $externalUser = new Visitor(Encoding::Base64UrlDecode($_POST[POST_EXTERN_USER_USERID]));
    $externalUser->ExtendSession = true;
    $externalUser->Load();
    array_push($externalUser->Browsers, new VisitorChat($externalUser->UserId, Encoding::Base64UrlDecode($_POST[POST_EXTERN_USER_BROWSERID])));
    array_push($externalUser->Browsers, new VisitorBrowser($externalUser->Browsers[0]->BrowserId, $externalUser->Browsers[0]->UserId));
    define("IS_FILTERED", DataManager::$Filters->Match(Communication::GetIP(), LocalizationManager::ImplodeLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), Encoding::Base64UrlDecode($_POST[POST_EXTERN_USER_USERID]), $externalUser->GeoCountryISO2));
    define("IS_FLOOD", $externalUser->Browsers[0]->FirstCall && Filter::IsFlood(Communication::GetIP(), @$_POST[POST_EXTERN_USER_USERID], true));
    Server::InitDataBlock(array("INTERNAL", "GROUPS"));
    VisitorChat::ApplyDynamicGroup($externalUser->Browsers[0]);
    $externalUser->Browsers[0]->Load();
    if ($externalUser->Browsers[0]->Status == CHAT_STATUS_OPEN && IS_FILTERED && !FILTER_ALLOW_CHATS && !FILTER_ALLOW_TICKETS) {
        $error = buildLoginErrorField();
        $externalUser->AddFunctionCall("lz_chat_release(true,'" . $error . "');", false);
    } else {
        if ($_POST[POST_EXTERN_SERVER_ACTION] == "search_kb") {
            $query = Communication::ReadParameter("p_q", "");
            $color = ExternalChat::ReadTextColor();
            $catcount = 0;
            $main = $result = $navcats = "";
            if ($query == "%ALL%") {
                $matches = KnowledgeBase::GetEntries(Visitor::$BrowserLanguage);