Beispiel #1
0
function main()
{
    global $numEpochs;
    global $numPatterns;
    global $patNum;
    global $RMSerror;
    // initiate the weights
    initWeights();
    // load in the data
    initData();
    // train the network
    for ($j = 0; $j <= $numEpochs; $j++) {
        for ($i = 0; $i < $numPatterns; $i++) {
            //select a pattern at random
            //srand();
            $patNum = rand(0, $numPatterns - 1);
            //calculate the current network output
            //and error for this pattern
            calcNet();
            //change network weights
            WeightChangesHO();
            WeightChangesIH();
        }
        //display the overall network error
        //after each epoch
        calcOverallError();
        if (gmp_mod($j, 50) == 0) {
            print "epoch = " . $j . "  RMS Error = " . $RMSerror . "</br>";
        }
    }
    //training has finished
    //display the results
    displayResults();
}
function getDisabledFunctions()
{
    global $INTERNAL, $GROUPS;
    initData(array("INTERNAL", "GROUPS"));
    $currentMIV = @ini_get("max_input_vars");
    $currentMIVText = $currentMIV;
    if (empty($currentMIV)) {
        $currentMIV = 1000;
        $currentMIVText = "unknown (default=1000)";
    }
    $message = null;
    if (count($INTERNAL) > 0 && ($miv = (count($GROUPS) + count($INTERNAL)) * 75) > $currentMIV) {
        $message .= "<span class=\"lz_index_error_cat\">PHP Configuration:<br></span> <span class=\"lz_index_red\">PHP configuration \"max_input_vars\" (see php.ini) must be increased to " . $miv . " (or greater).<br><br>Your current configuration is " . $currentMIVText . ".</span><br><br>";
    }
    if (!function_exists("file_get_contents") && ini_get('allow_url_fopen')) {
        $message .= "<span class=\"lz_index_error_cat\">Disabled function: file_get_contents<br></span> <span class=\"lz_index_red\">LiveZilla requires the PHP function file_get_contents to be activated.</span><br><br>";
    }
    if (!function_exists("fsockopen")) {
        $message .= "<span class=\"lz_index_error_cat\">Disabled function: fsockopen<br></span> <span class=\"lz_index_red\">LiveZilla requires the PHP function fsockopen to be activated.</span><br><br>";
    }
    if (!function_exists("iconv_mime_decode")) {
        $message .= "<span class=\"lz_index_error_cat\">Missing PHP extension: ICONV<br></span> <span class=\"lz_index_orange\">LiveZilla requires the PHP extension iconv to parse emails. Please add the iconv package to your PHP configuration.</span><br><br>";
    }
    if (isset($_GET["warnings"])) {
        if (!ini_get('allow_url_fopen')) {
            $message .= "<span class=\"lz_index_error_cat\">Disabled wrapper: allow_url_fopen<br></span> <span class=\"lz_index_red\">LiveZilla requires allow_url_fopen to be activated.</span><br><br>";
        }
        if (@get_magic_quotes_gpc() == 1 || strtolower(@get_magic_quotes_gpc()) == "on") {
            $message .= "<span class=\"lz_index_error_cat\">PHP Magic Quotes:</span><br><span class=\"lz_index_help_text\">This PHP feature has been DEPRECATED.</span><br><br>";
        }
    }
    return $message;
}
Beispiel #3
0
 $externalUser->Load();
 array_push($externalUser->Browsers, new VisitorChat($externalUser->UserId, AJAXDecode($_POST[POST_EXTERN_USER_BROWSERID])));
 define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), AJAXDecode($_POST[POST_EXTERN_USER_USERID])));
 define("IS_FLOOD", $externalUser->Browsers[0]->FirstCall && isFlood(getIP(), @$_POST[POST_EXTERN_USER_USERID], true));
 $externalUser->Browsers[0]->Load();
 if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_LISTEN) {
     $externalUser = listen($externalUser);
 } else {
     if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_MAIL) {
         initData(false, true, false, false);
         if ($externalUser->SaveTicket(AJAXDecode($_POST[POST_EXTERN_USER_GROUP]), $CONFIG) && ($CONFIG["gl_scom"] != null || $CONFIG["gl_sgom"] != null)) {
             $externalUser->SendCopyOfMail(AJAXDecode($_POST[POST_EXTERN_USER_GROUP]), $CONFIG, $GROUPS);
         }
     } else {
         if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_RATE) {
             initData(true, false, false, false);
             $externalUser->SaveRate(AJAXDecode($_POST[POST_EXTERN_REQUESTED_INTERNID]), $CONFIG);
         } else {
             if ($externalUser->Browsers[0]->Status != CHAT_STATUS_OPEN) {
                 $externalUser->Browsers[0]->CloseChat(7);
                 $externalUser->Browsers[0] = new VisitorChat($externalUser->UserId, AJAXDecode($_POST[POST_EXTERN_USER_BROWSERID]));
             } else {
                 $externalUser->Browsers[0]->ChatId = AJAXDecode(@$_POST[POST_EXTERN_CHAT_ID]);
             }
             $externalUser->Browsers[0]->Waiting = false;
             $externalUser->Browsers[0]->WaitingMessageDisplayed = null;
             if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_RELOAD_GROUPS) {
                 if (isset($_GET[GET_EXTERN_USER_NAME]) && !empty($_GET[GET_EXTERN_USER_NAME])) {
                     $externalUser->Browsers[0]->Fullname = base64UrlDecode($_GET[GET_EXTERN_USER_NAME]);
                 }
                 if (isset($_GET[GET_EXTERN_USER_EMAIL]) && !empty($_GET[GET_EXTERN_USER_EMAIL])) {
function reloadGroups($_user)
{
    global $CONFIG, $INTERNAL, $GROUPS;
    initData(true, false, false, true);
    $groupbuilder = new GroupBuilder($INTERNAL, $GROUPS, $CONFIG);
    $groupbuilder->Generate();
    if (isset($_POST[POST_EXTERN_REQUESTED_INTERNID]) && !empty($_POST[POST_EXTERN_REQUESTED_INTERNID])) {
        $_user->Browsers[0]->DesiredChatPartner = getInternalSystemIdByUserId(AJAXDecode($_POST[POST_EXTERN_REQUESTED_INTERNID]));
    }
    $_user->AddFunctionCall("top.lz_chat_set_groups(\"" . $groupbuilder->Result . "\" ," . $groupbuilder->ErrorHTML . ");", false);
    $_user->AddFunctionCall("lz_chat_release(" . parseBool($groupbuilder->GroupAvailable || isset($_POST[GET_EXTERN_RESET]) && strlen($groupbuilder->ErrorHTML) <= 2) . "," . $groupbuilder->ErrorHTML . ");", false);
    return $_user;
}
function buildTickets($xml = "", $dle_xml = "", $ticketCount = 0, $itemCount = 0)
{
    global $RESPONSE, $INTERNAL, $DUT;
    if (empty($_POST[POST_INTERN_XMLCLIP_TICKETS_END_TIME])) {
        return;
    }
    if (!isDataUpdate(POST_INTERN_DUT_TICKETS, DATA_UPDATE_KEY_TICKETS) && !isDataUpdate(POST_INTERN_DUT_EMAILS, DATA_UPDATE_KEY_EMAILS)) {
        return;
    }
    initData(array("INPUTS"));
    $permission = $INTERNAL[CALLER_SYSTEM_ID]->GetPermission(PERMISSION_MESSAGES);
    if ($_POST[POST_INTERN_XMLCLIP_TICKETS_END_TIME] == XML_CLIP_NULL || !is_numeric($_POST[POST_INTERN_XMLCLIP_TICKETS_END_TIME])) {
        $_POST[POST_INTERN_XMLCLIP_TICKETS_END_TIME] = 0;
    }
    if ($_POST[POST_INTERN_XMLCLIP_TICKETS_STATUS_END_TIME] == XML_CLIP_NULL || !is_numeric($_POST[POST_INTERN_XMLCLIP_TICKETS_STATUS_END_TIME])) {
        $_POST[POST_INTERN_XMLCLIP_TICKETS_STATUS_END_TIME] = 0;
    }
    if ($_POST[POST_INTERN_XMLCLIP_EMAILS_END_TIME] == XML_CLIP_NULL || !is_numeric($_POST[POST_INTERN_XMLCLIP_EMAILS_END_TIME])) {
        $_POST[POST_INTERN_XMLCLIP_EMAILS_END_TIME] = 0;
    }
    if ($_POST[POST_INTERN_XMLCLIP_TICKETS_LOG_END_TIME] == XML_CLIP_NULL || !is_numeric($_POST[POST_INTERN_XMLCLIP_TICKETS_LOG_END_TIME])) {
        $_POST[POST_INTERN_XMLCLIP_TICKETS_LOG_END_TIME] = 0;
    }
    if ($_POST[POST_INTERN_XMLCLIP_TICKETS_COMMENTS_END_TIME] == XML_CLIP_NULL || !is_numeric($_POST[POST_INTERN_XMLCLIP_TICKETS_COMMENTS_END_TIME])) {
        $_POST[POST_INTERN_XMLCLIP_TICKETS_COMMENTS_END_TIME] = 0;
    }
    $queries["messages"] = "FROM `" . DB_PREFIX . DATABASE_TICKETS . "` INNER JOIN `" . DB_PREFIX . DATABASE_TICKET_MESSAGES . "` ON `" . DB_PREFIX . DATABASE_TICKETS . "`.`id`=`" . DB_PREFIX . DATABASE_TICKET_MESSAGES . "`.`ticket_id` WHERE `time` >" . DBManager::RealEscape($_POST[POST_INTERN_XMLCLIP_TICKETS_END_TIME]) . " ORDER BY `time` ASC";
    $queries["mails"] = "FROM `" . DB_PREFIX . DATABASE_TICKET_EMAILS . "` AS `t1` INNER JOIN `" . DB_PREFIX . DATABASE_MAILBOXES . "` AS `t2` ON `t1`.`mailbox_id`=`t2`.`id` WHERE `edited` >" . DBManager::RealEscape($_POST[POST_INTERN_XMLCLIP_EMAILS_END_TIME]) . " ORDER BY `edited` ASC";
    $queries["status"] = "FROM `" . DB_PREFIX . DATABASE_TICKETS . "` INNER JOIN `" . DB_PREFIX . DATABASE_TICKET_EDITORS . "` ON `" . DB_PREFIX . DATABASE_TICKETS . "`.`id`=`" . DB_PREFIX . DATABASE_TICKET_EDITORS . "`.`ticket_id` WHERE `time` >" . DBManager::RealEscape($_POST[POST_INTERN_XMLCLIP_TICKETS_STATUS_END_TIME]) . " ORDER BY `time` ASC;";
    $queries["log"] = "FROM `" . DB_PREFIX . DATABASE_TICKET_LOGS . "` WHERE `time` >" . DBManager::RealEscape($_POST[POST_INTERN_XMLCLIP_TICKETS_LOG_END_TIME]) . " ORDER BY `time` ASC;";
    $queries["comments"] = "FROM `" . DB_PREFIX . DATABASE_TICKET_COMMENTS . "` WHERE `time` >" . DBManager::RealEscape($_POST[POST_INTERN_XMLCLIP_TICKETS_COMMENTS_END_TIME]) . " ORDER BY `time` ASC;";
    $result = queryDB(true, "SELECT * " . $queries["messages"] . " LIMIT " . DBManager::RealEscape(DATA_ITEM_LOADS) . ";");
    if ($result) {
        while ($row = DBManager::FetchArray($result)) {
            $ticket = new Ticket($row);
            $full = in_array($ticket->Group, $INTERNAL[CALLER_SYSTEM_ID]->Groups) && $permission != PERMISSION_NONE || $permission == PERMISSION_FULL;
            if ($full) {
                $ticket->Messages[0]->LoadCustoms();
                $ticket->Messages[0]->LoadAttachments();
            }
            $xml .= $ticket->GetXML($full);
            $itemCount++;
            $ticketCount++;
        }
    }
    if ($ticketCount != DATA_ITEM_LOADS) {
        $mailcount = $last = 0;
        $result = queryDB(true, "SELECT `t1`.*,`t2`.`email` AS `receiver_mail` " . $queries["mails"] . " LIMIT " . DBManager::RealEscape(DATA_ITEM_LOADS * 5) . ";");
        if ($result) {
            while ($row = DBManager::FetchArray($result)) {
                $permissione = $INTERNAL[CALLER_SYSTEM_ID]->GetPermission(22);
                $full = $permissione != PERMISSION_NONE && (in_array($row["group_id"], $INTERNAL[CALLER_SYSTEM_ID]->Groups) && $permission != PERMISSION_NONE || $permission == PERMISSION_FULL);
                $email = new TicketEmail($row);
                $email->LoadAttachments();
                $xml .= $email->GetXML($full);
                $itemCount++;
                if ($last != $row["edited"] && ++$mailcount >= DATA_ITEM_LOADS) {
                    break;
                }
                $last = $row["edited"];
            }
        }
        $statuscount = $last = 0;
        $result = queryDB(true, "SELECT * " . $queries["status"]);
        if ($result) {
            while ($row = DBManager::FetchArray($result)) {
                if ($statuscount++ >= DATA_ITEM_LOADS && $last != $row["time"]) {
                    break;
                }
                $ticket = new TicketEditor($row["ticket_id"], $row);
                $xml .= $ticket->GetXML(@$row["wait_begin"], @$row["last_update"]);
                $itemCount++;
                $last = $row["time"];
            }
        }
        $logcount = $last = 0;
        $result = queryDB(true, "SELECT * " . $queries["log"]);
        if ($result) {
            while ($row = DBManager::FetchArray($result)) {
                if ($logcount++ >= DATA_ITEM_LOADS && $last != $row["time"]) {
                    break;
                }
                $xml .= "<lo c=\"" . base64_encode($row["created"]) . "\" ti=\"" . base64_encode($row["time"]) . "\" t=\"" . base64_encode($row["ticket_id"]) . "\" a=\"" . base64_encode($row["action"]) . "\" o=\"" . base64_encode($row["operator_id"]) . "\" v=\"" . base64_encode($row["value_old"]) . "\">" . base64_encode($row["value_new"]) . "</lo>\r\n";
                $last = $row["time"];
                $itemCount++;
            }
        }
        $commentscount = $last = 0;
        $result = queryDB(true, "SELECT * " . $queries["comments"]);
        if ($result) {
            while ($row = DBManager::FetchArray($result)) {
                if ($commentscount++ >= DATA_ITEM_LOADS && $last != $row["time"]) {
                    break;
                }
                $xml .= "<c i=\"" . base64_encode($row["id"]) . "\" c=\"" . base64_encode($row["created"]) . "\" ti=\"" . base64_encode($row["time"]) . "\" t=\"" . base64_encode($row["ticket_id"]) . "\" m=\"" . base64_encode($row["message_id"]) . "\" o=\"" . base64_encode($row["operator_id"]) . "\">" . base64_encode($row["comment"]) . "</c>\r\n";
                $last = $row["time"];
                $itemCount++;
            }
        }
    }
    $count = 0;
    foreach ($queries as $query) {
        if ($result = queryDB(true, "SELECT count(*) as `total` " . $query)) {
            while ($row = DBManager::FetchArray($result)) {
                if (!empty($row["total"])) {
                    $count += $row["total"];
                }
            }
        }
    }
    if (!empty($count)) {
        $DUT[DATA_UPDATE_KEY_TICKETS] = 0;
        $xml = "<l l=\"" . base64_encode($count) . "\">" . base64_encode($itemCount) . "</l>\r\n" . $xml;
    }
    $RESPONSE->Messages = "<t dutt=\"" . base64_encode($DUT[DATA_UPDATE_KEY_TICKETS]) . "\"  dute=\"" . base64_encode($DUT[DATA_UPDATE_KEY_EMAILS]) . "\">\r\n" . $xml . $dle_xml . "</t>";
}
Beispiel #6
0
    //print "=--------\n";
    //foreach ($result as $a) print "= danach: " . $a['password'] . " : " . (isset($a['#']) ? $a['#'] : '####') . "\n";
    print "\n";
    return $result;
}
////////////////////////////////////////////////////////////////////////////////
// initialize test
$testPasswords = array();
for ($i = 0; $i < 20; $i++) {
    $accountId = hash('md5', uniqid());
    $userId = 'user-' . $accountId;
    $testPasswords[] = array('account' => $userId, 'email' => $accountId . '@domain.tld', 'password' => sprintf('%s:{SHA512}NEWPASSWORD%s', $userId, uniqid()));
}
$fields = array('password');
initData(15);
$testPasswords = call('post', $testPasswords);
initData(15);
check(PASSWORDS, $testPasswords, $fields);
$testPasswords = call('put', $testPasswords);
check(PASSWORDS, $testPasswords, $fields);
$newTestPasswords = array();
foreach ($testPasswords as $key => $value) {
    $userId = 'renamed-user-' . $accountId;
    $newTestPasswords[] = array('oldaccount' => $value['account'], 'email' => $value['email'], 'account' => $userId, 'password' => sprintf('%s:{SHA512}NEWPASSWORD%s', $userId, uniqid()));
}
$newTestPasswords = call('put', $newTestPasswords);
check(PASSWORDS, $newTestPasswords, $fields);
check(PASSWORDS, $testPasswords, $fields, false);
call('delete', $testPasswords);
check(PASSWORDS, $testPasswords, $fields, false);
print "\n>>> file: " . PASSWORDS . "\n";
Beispiel #7
0
define("LIVEZILLA_PATH", "../../");
@set_time_limit(30);
require LIVEZILLA_PATH . "_definitions/definitions.inc.php";
require LIVEZILLA_PATH . "_lib/objects.global.users.inc.php";
require LIVEZILLA_PATH . "_lib/functions.global.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.dynamic.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.protocol.inc.php";
require LIVEZILLA_PATH . "_lib/functions.internal.inc.php";
require LIVEZILLA_PATH . "_lib/objects.internal.inc.php";
@set_error_handler("handleError");
@error_reporting(E_ALL);
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Keep-Alive: timeout=5, max=100");
initDataProvider();
initData(array("INTERNAL", "INPUTS"));
validate(true);
if (isValidated() && is("CALLER_SYSTEM_ID")) {
    if ($INTERNAL[CALLER_SYSTEM_ID]->GetPermission(46) != PERMISSION_NONE) {
        require "objects.apiv2.inc.php";
        $apiv2 = new ApiV2(isset($_POST["p_json_pretty"]));
        if ($apiv2->RunActions() && empty($apiv2->ErrorField) && !empty($apiv2->JSONOutput)) {
            exit($apiv2->JSONOutput);
        } else {
            header("HTTP/1.1 400 Bad Request");
            exit("HTTP/1.1 400 Bad Request" . $apiv2->GetErrorCodes());
        }
    }
}
header("HTTP/1.1 403 Forbidden");
exit("HTTP/1.1 403 Forbidden");
Beispiel #8
0
            }
        }
        if ($online) {
            $TRACKINGSCRIPT .= "lz_tracking_add_floating_button(" . $_GET["fbpos"] . "," . $shadow . $margin . "," . $_GET["fbw"] . "," . $_GET["fbh"] . ");";
        }
    }
} else {
    $TRACKINGSCRIPT = "lz_tracking_set_sessid(\"" . htmlentities(CALLER_USER_ID) . "\",\"" . htmlentities(CALLER_BROWSER_ID) . "\");";
    if (isset($_GET[GET_TRACK_URL]) && strpos(base64UrlDecode($_GET[GET_TRACK_URL]), GET_INTERN_COBROWSE) !== false) {
        abortTracking(1);
    }
    $BROWSER = new VisitorBrowser(CALLER_BROWSER_ID, CALLER_USER_ID);
    if ($EXTERNALUSER->FirstCall && !$BROWSER->IsFirstCall()) {
        $EXTERNALUSER->FirstCall = false;
    }
    initData(false, false, false, true, true);
    define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), CALLER_USER_ID));
    define("IS_FLOOD", $BROWSER->IsFirstCall() && isFlood(getIP(), CALLER_USER_ID));
    if (!getAvailability() || IS_FILTERED || IS_FLOOD) {
        $BROWSER->Destroy();
        exit("lz_tracking_stop_tracking();");
    }
    $BROWSER->Customs = getCustomArray();
    if (isset($_GET[GET_EXTERN_USER_NAME]) && !empty($_GET[GET_EXTERN_USER_NAME])) {
        $BROWSER->Fullname = cutString(base64UrlDecode($_GET[GET_EXTERN_USER_NAME]), 254);
    } else {
        $BROWSER->Fullname = getCookieValue("form_111");
    }
    if (isset($_GET[GET_EXTERN_USER_EMAIL]) && !empty($_GET[GET_EXTERN_USER_EMAIL])) {
        $BROWSER->Email = cutString(base64UrlDecode($_GET[GET_EXTERN_USER_EMAIL]), 254);
    } else {
function processCancelInvitation()
{
    global $VISITOR;
    if (isset($_POST[POST_INTERN_PROCESS_CANCEL_INVITATION])) {
        $users = explode(POST_ACTION_VALUE_SPLITTER, utf8_decode($_POST[POST_INTERN_PROCESS_CANCEL_INVITATION]));
        foreach ($users as $uid) {
            $VISITOR[$uid]->ForceUpdate();
            queryDB(true, "UPDATE `" . DB_PREFIX . DATABASE_CHAT_REQUESTS . "` SET `closed`=1,`canceled`='" . DBManager::RealEscape(CALLER_SYSTEM_ID) . "' WHERE `canceled`='' AND `accepted`=0 AND `declined`=0 AND `receiver_user_id`='" . DBManager::RealEscape($uid) . "';");
        }
        $VISITOR = null;
        initData(array("VISITOR"));
    }
}
function setManagement($_prefix)
{
    global $INTERNAL, $RESPONSE, $CONFIG, $GROUPS, $VISITOR;
    administrationLog("setManagement", "", CALLER_SYSTEM_ID);
    if (isValidated()) {
        if (isset($INTERNAL[CALLER_SYSTEM_ID]) && ($INTERNAL[CALLER_SYSTEM_ID]->Level == USER_LEVEL_ADMIN || is_array($INTERNAL[CALLER_SYSTEM_ID]->WebsitesUsers) && in_array($CONFIG["gl_host"], $INTERNAL[CALLER_SYSTEM_ID]->WebsitesUsers))) {
            $count = 0;
            while (isset($_POST["p_operators_" . $count . "_id"])) {
                if (!empty($_POST["p_operators_" . $count . "_delete"])) {
                    queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_OPERATORS . "` WHERE `id`='" . DBManager::RealEscape($_POST["p_operators_" . $count . "_id"]) . "' LIMIT 1;");
                } else {
                    $did = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->AppDeviceId : "";
                    $abm = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->AppBackgroundMode : false;
                    $aos = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->AppOS : "";
                    $lac = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->LastActive : 0;
                    $fac = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->FirstActive : 0;
                    $wcl = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->ClientWeb : 0;
                    $acl = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->AppClient : 0;
                    $sta = !empty($INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]) ? $INTERNAL[$_POST["p_operators_" . $count . "_system_id"]]->Status : 2;
                    queryDB(true, "REPLACE INTO `" . $_prefix . DATABASE_OPERATORS . "` (`id`, `system_id`, `fullname`, `description`, `email`, `permissions`, `webspace`, `password`, `status`, `level`, `visitor_file_sizes`, `groups`, `groups_status`, `groups_hidden`,`reposts`, `languages`, `auto_accept_chats`, `login_ip_range`, `websites_users`, `websites_config`, `bot`, `wm`, `wmohca`,`first_active`,`last_active`,`sign_off`,`lweb`,`lapp`,`mobile_os`,`mobile_device_id`,`mobile_background`,`mobile_ex`,`max_chats`) VALUES ('" . DBManager::RealEscape($_POST["p_operators_" . $count . "_id"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_system_id"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_fullname"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_description"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_email"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_permissions"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_webspace"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_password"]) . "','" . $sta . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_level"]) . "','','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_groups"]) . "','','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_groups_hidden"]) . "','','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_languages"]) . "',0,'" . DBManager::RealEscape($_POST["p_operators_" . $count . "_lipr"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_websites_users"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_websites_config"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_bot"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_wm"]) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_wmohca"]) . "'," . $fac . "," . $lac . "," . (empty($_POST["p_operators_" . $count . "_deac"]) ? 0 : 2) . ",'" . DBManager::RealEscape($wcl ? 1 : 0) . "','" . DBManager::RealEscape($acl ? 1 : 0) . "','" . DBManager::RealEscape($aos) . "','" . DBManager::RealEscape($did) . "','" . DBManager::RealEscape($abm ? 1 : 0) . "','" . DBManager::RealEscape(@$_POST["p_operators_" . $count . "_mobile_ex"]) . "','" . DBManager::RealEscape(@$_POST["p_operators_" . $count . "_max_chats"]) . "');");
                }
                if (!empty($_POST["p_operators_" . $count . "_pp"])) {
                    queryDB(true, "DELETE FROM `" . DB_PREFIX . DATABASE_PROFILE_PICTURES . "` WHERE `webcam`='0' AND `internal_id`='" . DBManager::RealEscape($_POST["p_operators_" . $count . "_id"]) . "' LIMIT 1;");
                    queryDB(true, "INSERT INTO `" . DB_PREFIX . DATABASE_PROFILE_PICTURES . "` (`id` ,`internal_id`,`time` ,`webcam` ,`data`) VALUES ('" . DBManager::RealEscape(getId(32)) . "','" . DBManager::RealEscape($_POST["p_operators_" . $count . "_system_id"]) . "','" . DBManager::RealEscape(time()) . "',0,'" . DBManager::RealEscape($_POST["p_operators_" . $count . "_pp"]) . "');");
                }
                $count++;
            }
            $count = 0;
            while (isset($_POST["p_groups_" . $count . "_id"])) {
                if (!empty($_POST["p_groups_" . $count . "_delete"])) {
                    queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_GROUPS . "`  WHERE `id`='" . DBManager::RealEscape($_POST["p_groups_" . $count . "_id"]) . "' LIMIT 1;");
                } else {
                    queryDB(true, "REPLACE INTO `" . $_prefix . DATABASE_GROUPS . "` (`id`, `dynamic`, `description`, `external`, `internal`, `created`, `email`, `standard`, `opening_hours`, `functions`, `chat_inputs_hidden`, `ticket_inputs_hidden`, `chat_inputs_required`, `ticket_inputs_required`, `chat_inputs_masked`, `ticket_inputs_masked`, `chat_inputs_cap`, `ticket_inputs_cap`, `max_chats`, `visitor_filters`, `chat_vouchers_required`, `pre_chat_html`, `post_chat_html`, `ticket_email_out`, `ticket_email_in`, `ticket_handle_unknown`, `chat_email_out`,`ticket_assignment`,`priorities`) VALUES ('" . DBManager::RealEscape($_POST["p_groups_" . $count . "_id"]) . "',0,'" . DBManager::RealEscape($_POST["p_groups_" . $count . "_description"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_external"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_internal"]) . "'," . time() . ",'" . DBManager::RealEscape($_POST["p_groups_" . $count . "_email"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_standard"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_opening_hours"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_functions"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_inputs_hidden"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_inputs_hidden"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_inputs_required"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_inputs_required"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_inputs_masked"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_inputs_masked"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_inputs_cap"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_inputs_cap"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_max_chats"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_visitor_filters"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_vouchers_required"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_pre_html"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_post_html"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_email_out"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_email_in"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_email_handling"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_chat_email_out"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_ticket_assign"]) . "','" . DBManager::RealEscape($_POST["p_groups_" . $count . "_priorities"]) . "');");
                }
                $count++;
            }
            queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_OPERATOR_LOGINS . "`;");
            $INTERNAL = $GROUPS = $VISITOR = null;
            initData(array("INTERNAL", "GROUPS", "VISITOR"));
            updatePredefinedMessages($_prefix);
            updateSignatures($_prefix);
            if (!empty($_POST["p_operators_0_id"])) {
                queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_AUTO_REPLIES . "` WHERE NOT EXISTS (SELECT * FROM `" . $_prefix . DATABASE_OPERATORS . "` WHERE `system_id` = `" . $_prefix . DATABASE_AUTO_REPLIES . "`.`owner_id`) AND NOT EXISTS (SELECT * FROM `" . $_prefix . DATABASE_GROUPS . "` WHERE `id` = `" . $_prefix . DATABASE_AUTO_REPLIES . "`.`owner_id`)");
                queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_PROFILE_PICTURES . "` WHERE NOT EXISTS (SELECT * FROM `" . $_prefix . DATABASE_OPERATORS . "` WHERE `system_id` = `" . $_prefix . DATABASE_PROFILE_PICTURES . "`.`internal_id`);");
                queryDB(true, "DELETE FROM `" . $_prefix . DATABASE_PROFILES . "` WHERE NOT EXISTS (SELECT * FROM `" . $_prefix . DATABASE_OPERATORS . "` WHERE `system_id` = `" . $_prefix . DATABASE_PROFILES . "`.`id`);");
                if (isset($_POST[POST_INTERN_EDIT_USER])) {
                    $combos = explode(";", $_POST[POST_INTERN_EDIT_USER]);
                    for ($i = 0; $i < count($combos); $i++) {
                        if (strpos($combos[$i], ",") !== false) {
                            $vals = explode(",", $combos[$i]);
                            if (strlen($vals[1]) > 0) {
                                $INTERNAL[$vals[0]]->ChangePassword($vals[1], true);
                            }
                            if ($vals[2] == 1) {
                                $INTERNAL[$vals[0]]->SetPasswordChangeNeeded(true);
                            }
                        }
                    }
                }
            }
            setIdle(0);
            $RESPONSE->SetStandardResponse(1, "");
        }
    }
}
Beispiel #11
0
    print "=--------\n";
    foreach ($result as $a) {
        print "= danach: " . $a['emailpattern'] . " : " . (isset($a['#']) ? $a['#'] : '####') . "\n";
    }
    print "\n";
    return $result;
}
$fields = array('emailpattern', 'account');
////////////////////////////////////////////////////////////////////////////////
// initialize test
$testAddresss = array();
for ($i = 0; $i < 20; $i++) {
    $addressId = hash('md5', uniqid());
    $userId = 'user-' . $addressId;
    $testAddresss[] = array('account' => $userId, 'emailpattern' => $addressId . '@domain.tld');
}
initData(15, 100);
//$testAddresss = doTest('POST', $testAddresss);
$testAddresss = call('post', $testAddresss);
initData(15, 500);
check(ADDRESSES, $testAddresss, $fields);
//$testAddresss = doTest('PUT', $testAddresss);
$testAddresss = call('put', $testAddresss);
check(ADDRESSES, $testAddresss, $fields);
$loadedTestAddresss = call('get', $testAddresss);
check(ADDRESSES, $loadedTestAddresss, $fields);
find($testAddresss, $loadedTestAddresss);
//$testAddresss = doTest('DELETE', $testAddresss);
call('delete', $testAddresss);
check(ADDRESSES, $testAddresss, $fields, false);
print "\n>>> file: " . ADDRESSES . "\n";
 static function CreateFloodFilter($_ip, $_userId)
 {
     global $FILTERS;
     initData(array("FILTERS"));
     foreach ($FILTERS->Filters as $currentFilter) {
         if ($currentFilter->IP == $_ip && $currentFilter->Activeipaddress == 1 && $currentFilter->Activestate == 1) {
             return;
         }
     }
     Filter::Create($_ip, $_userId, "AUTO FLOOD FILTER");
 }
    define("LIVEZILLA_PATH", "./");
}
@ini_set('session.use_cookies', '0');
@error_reporting(E_ALL);
$content_frames = array("lz_chat_frame.3.2.lgin.1.0", "lz_chat_frame.3.2.mail.1.0", "lz_chat_frame.3.2.chat.1.0", "lz_chat_frame.3.2.chat.0.0", "lz_chat_frame.3.2.chat.2.0");
require LIVEZILLA_PATH . "_lib/functions.external.inc.php";
require LIVEZILLA_PATH . "_lib/objects.external.inc.php";
@set_time_limit($CONFIG["timeout_chats"]);
if (!isset($_GET["file"])) {
    @set_error_handler("handleError");
}
if (!isset($_GET["browid"])) {
    exit;
}
languageSelect();
initData(array("INTERNAL", "GROUPS", "FILTERS", "INPUTS"));
$USER = new Visitor(base64UrlDecode(getParam(GET_TRACK_USERID)));
$USER->Load();
array_push($USER->Browsers, new VisitorChat($USER->UserId, $USER->UserId . "_OVL"));
array_push($USER->Browsers, $BROWSER);
$GroupBuilder = new GroupBuilder($INTERNAL, $GROUPS, $CONFIG, $USER->Browsers[0]->DesiredChatGroup, $USER->Browsers[0]->DesiredChatPartner, false);
$GroupBuilder->Generate(null, true);
$USER->Browsers[0]->Overlay = true;
$USER->Browsers[0]->Load();
if ($USER->Browsers[0]->FirstCall) {
    $USER->AddFunctionCall("lz_chat_init_data_change(null,null);", false);
}
if (IS_FILTERED) {
    $USER->Browsers[0]->CloseChat();
    $USER->Browsers[0]->Destroy();
    $USER->AddFunctionCall("lz_tracking_remove_overlay_chat();", true);
Beispiel #14
0
            require LIVEZILLA_PATH . "extern.php";
            $response = utf8_encode("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><livezilla_js>" . base64_encode(isset($EXTERNSCRIPT) ? $EXTERNSCRIPT : "") . "</livezilla_js>");
        } else {
            if (isset($_POST["p_request"]) && $_POST["p_request"] == CALLER_TYPE_INTERNAL) {
                define("CALLER_TYPE", CALLER_TYPE_INTERNAL);
                define("CALLER_TIMEOUT", $CONFIG["timeout_clients"]);
                header("Connection: close");
                header("Cache-Control: no-cache, must-revalidate");
                header("Content-Type: text/xml; charset=UTF-8");
                require LIVEZILLA_PATH . "intern.php";
                $response = utf8_encode($response);
            } else {
                if (isset($_GET[GET_SERVER_REQUEST_TYPE]) && $_GET[GET_SERVER_REQUEST_TYPE] == "cronjob" && !empty($_GET["cjid"]) && $_GET["cjid"] == $CONFIG["gl_cjid"]) {
                    define("CALLER_TYPE", "cronjob");
                    define("CALLER_TIMEOUT", 360);
                    initData(array("INTERNAL", "GROUPS"));
                    $response = DB_CONNECTION ? "Success" : "No database connection";
                }
            }
        }
    }
    if (DB_CONNECTION && is("CALLER_TYPE") && (!empty($CONFIG["gl_cjfs"]) || CALLER_TYPE == "cronjob") && !is("SERVERSETUP") && !is("LOGIN")) {
        cronJobs(CALLER_TYPE == "cronjob");
    }
}
if (!isset($response)) {
    exit(getFile(TEMPLATE_HTML_SUPPORT));
}
sendPushMessages();
unloadDataProvider();
exit($response);
 public static function GetMatchingVoucher($_groupId, $_voucherid)
 {
     global $CONFIG, $GROUPS;
     initData(array("GROUPS"));
     $ticket = new CommercialChatVoucher("", $_voucherid);
     $ticket->Load();
     $result = queryDB(true, $d = "SELECT *,`t1`.`id` AS `voucherid`, SUM(`chat_time_max`) AS `chat_time_max`, SUM(`chat_time`) AS `chat_time`, SUM(`chat_sessions`) AS `chat_sessions`, SUM(`chat_sessions_max`) AS `chat_sessions_max`, MAX(`expires`) AS `expires` FROM `" . DB_PREFIX . DATABASE_COMMERCIAL_CHAT_VOUCHERS . "` AS `t1` INNER JOIN `" . DB_PREFIX . DATABASE_COMMERCIAL_CHAT_TYPES . "` AS `t2` ON `t1`.`tid`=`t2`.`id` WHERE `t1`.`id`='" . DBManager::RealEscape($_voucherid) . "' ORDER BY `created` ASC;");
     while ($row = @DBManager::FetchArray($result)) {
         if (!empty($CONFIG["db"]["cct"][$row["tid"]])) {
             $ticket = new CommercialChatVoucher($row);
             if (in_array($row["tid"], $GROUPS[$_groupId]->ChatVouchersRequired)) {
                 return $ticket;
             }
         }
     }
     return null;
 }
 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;
 }
Beispiel #17
0
    print "=--------\n";
    foreach ($result as $a) {
        print "= [{$func}] danach: " . $a['account'] . " : " . (isset($a['#']) ? $a['#'] : '####') . "\n";
    }
    print "\n";
    return $result;
}
$fields = array('account', 'email');
////////////////////////////////////////////////////////////////////////////////
// initialize test
$testAccounts = array();
for ($i = 0; $i < 20; $i++) {
    $accountId = hash('md5', uniqid());
    $userId = 'user-' . $accountId;
    $testAccounts[] = array('account' => $userId, 'email' => $accountId . '@domain.tld', 'password' => sprintf('user-%s:{SHA512}NEWPASSWORD%s', $accountId, uniqid()));
}
initData(5);
//$testAccounts = doTest('POST', $testAccounts);
$testAccounts = call('post', $testAccounts);
initData(5);
check(ACCOUNTS, $testAccounts, $fields);
//$testAccounts = doTest('PUT', $testAccounts);
$testAccounts = call('put', $testAccounts);
check(ACCOUNTS, $testAccounts, $fields);
$loadedTestAccounts = call('get', $testAccounts);
check(ACCOUNTS, $loadedTestAccounts, $fields);
find($testAccounts, $loadedTestAccounts);
//$testAccounts = doTest('DELETE', $testAccounts);
call('delete', $testAccounts);
check(ACCOUNTS, $testAccounts, $fields, false);
print "\n>>> file: " . ACCOUNTS . "\n";
function processActions($actionData = "")
{
    global $BROWSER, $CONFIG, $INTERNAL, $EVENTS, $GROUPS;
    if (!empty($BROWSER->ChatRequest)) {
        initData(true, true);
        if ($INTERNAL[$BROWSER->ChatRequest->SenderSystemId]->LastActive < time() - $CONFIG["timeout_clients"] || $INTERNAL[$BROWSER->ChatRequest->SenderSystemId]->Status != USER_STATUS_ONLINE || !$GROUPS[$BROWSER->ChatRequest->SenderGroupId]->IsOpeningHour() || $BROWSER->ChatRequest->Closed) {
            $BROWSER->ChatRequest->SetStatus(false, false, true, true);
            $actionData .= "lz_tracking_close_request();";
            $BROWSER->ForceUpdate();
        } else {
            if (isset($_GET[GET_TRACK_REQUEST_DECLINED]) || isset($_GET[GET_TRACK_REQUEST_ACCEPTED])) {
                if (isset($_GET[GET_TRACK_REQUEST_DECLINED])) {
                    $BROWSER->ChatRequest->SetStatus(false, false, true, true);
                }
                if (isset($_GET[GET_TRACK_REQUEST_CLOSE])) {
                    if (isset($_GET[GET_TRACK_REQUEST_ACCEPTED])) {
                        $BROWSER->ChatRequest->SetStatus(false, true, false, true);
                    }
                    $actionData .= "lz_tracking_close_request();";
                }
                $BROWSER->ForceUpdate();
            } else {
                if (!$BROWSER->ChatRequest->Accepted && !$BROWSER->ChatRequest->Declined) {
                    if (empty($BROWSER->ChatRequest->EventActionId)) {
                        $invitationHTML = doReplacements($BROWSER->ChatRequest->CreateInvitationTemplate($CONFIG["gl_inv_template"], $CONFIG["gl_site_name"], $CONFIG["wcl_window_width"], $CONFIG["wcl_window_height"], LIVEZILLA_URL, $INTERNAL[$BROWSER->ChatRequest->SenderSystemId], $CONFIG["gl_inv_coc"]));
                        $BROWSER->ChatRequest->Invitation = new Invitation($invitationHTML, $CONFIG["gl_inv_position"], $CONFIG["gl_inv_margin"][0], $CONFIG["gl_inv_margin"][1], $CONFIG["gl_inv_margin"][2], $CONFIG["gl_inv_margin"][3], $CONFIG["gl_inv_scroll_speed"], $CONFIG["gl_inv_template"], empty($CONFIG["gl_inv_no_scroll"]), $BROWSER->ChatRequest->Text, $CONFIG["gl_inv_coc"]);
                    } else {
                        if (!isnull($action = $EVENTS->GetActionById($BROWSER->ChatRequest->EventActionId))) {
                            $invitationHTML = doReplacements($BROWSER->ChatRequest->CreateInvitationTemplate($action->Invitation->Style, $CONFIG["gl_site_name"], $CONFIG["wcl_window_width"], $CONFIG["wcl_window_height"], LIVEZILLA_URL, $INTERNAL[$BROWSER->ChatRequest->SenderSystemId], $action->Invitation->CloseOnClick));
                            $BROWSER->ChatRequest->Invitation = $action->Invitation;
                            $BROWSER->ChatRequest->Invitation->Text = $BROWSER->ChatRequest->Text;
                            $BROWSER->ChatRequest->Invitation->HTML = $invitationHTML;
                        }
                    }
                    $BROWSER->ChatRequest->SetStatus(true, false, false, false);
                    $actionData .= $BROWSER->ChatRequest->Invitation->GetCommand();
                    $BROWSER->ForceUpdate();
                }
            }
        }
    }
    if (!empty($BROWSER->WebsitePush)) {
        if (isset($_GET[GET_TRACK_WEBSITE_PUSH_DECLINED])) {
            $BROWSER->WebsitePush->SetStatus(false, false, true);
        } else {
            if (isset($_GET[GET_TRACK_WEBSITE_PUSH_ACCEPTED]) || !$BROWSER->WebsitePush->Ask && !$BROWSER->WebsitePush->Displayed) {
                $BROWSER->WebsitePush->SetStatus(false, true, false);
                $actionData .= $BROWSER->WebsitePush->GetExecCommand();
            } else {
                if ($BROWSER->WebsitePush->Ask && !$BROWSER->WebsitePush->Accepted && !$BROWSER->WebsitePush->Declined) {
                    $BROWSER->WebsitePush->SetStatus(true, false, false);
                    $actionData .= $BROWSER->WebsitePush->GetInitCommand();
                }
            }
        }
    }
    if (!empty($BROWSER->Alert) && !$BROWSER->Alert->Accepted) {
        if (isset($_GET[GET_TRACK_ALERT_CONFIRMED])) {
            $BROWSER->Alert->SetStatus(false, true);
        } else {
            $actionData .= $BROWSER->Alert->GetCommand();
        }
    }
    return $actionData;
}
 function BuildChatXML()
 {
     global $USER, $BROWSER, $GROUPS, $INPUTS;
     initData(array("INPUTS"));
     if ($this->CurrentResponseType == DATA_RESPONSE_TYPE_KEEP_ALIVE) {
         $this->CurrentResponseType = DATA_RESPONSE_TYPE_BASIC;
     }
     if ($this->GetAll) {
         $this->CurrentResponseType = DATA_RESPONSE_TYPE_STATIC;
     }
     if (!$BROWSER->Closed && ($BROWSER->Status > CHAT_STATUS_OPEN || $BROWSER->Waiting)) {
         if (!empty($BROWSER->DesiredChatGroup)) {
             $pra = !empty($BROWSER->Members[CALLER_SYSTEM_ID]) ? " pra=\"" . base64_encode($BROWSER->PostsReceived(CALLER_SYSTEM_ID)) . "\"" : "";
             $cti = "";
             $USER->IsChat = true;
             $this->XMLCurrentChat = "<chat id=\"" . base64_encode($BROWSER->ChatId) . "\" d=\"" . base64_encode(!empty($BROWSER->Declined) ? 1 : 0) . "\" p=\"" . base64_encode($BROWSER->Priority) . "\" f=\"" . base64_encode($BROWSER->FirstActive) . "\" q=\"" . base64_encode($BROWSER->Status > CHAT_STATUS_OPEN ? "0" : "1") . "\" cmb=\"" . base64_encode($BROWSER->CallMeBack) . "\" st=\"" . base64_encode($BROWSER->Activated) . "\" fn=\"" . base64_encode($BROWSER->GetInputData(111)) . "\" em=\"" . base64_encode($BROWSER->GetInputData(112)) . "\" eq=\"" . base64_encode($BROWSER->GetInputData(114)) . "\" gr=\"" . base64_encode($BROWSER->DesiredChatGroup) . "\" dcp=\"" . base64_encode($BROWSER->DesiredChatPartner) . "\" at=\"" . base64_encode($BROWSER->AllocatedTime) . "\" cp=\"" . base64_encode($BROWSER->GetInputData(116)) . "\" co=\"" . base64_encode($BROWSER->GetInputData(113)) . "\"" . $pra . $cti . ">\r\n";
             foreach ($GROUPS as $groupid => $group) {
                 if ($group->IsDynamic) {
                     foreach ($group->Members as $member => $persistent) {
                         if ($member == $BROWSER->SystemId) {
                             $this->XMLCurrentChat .= "<gr p=\"" . base64_encode($persistent ? "1" : "0") . "\">" . base64_encode($groupid) . "</gr>\r\n";
                         }
                     }
                 }
             }
             if (is_array($BROWSER->Customs)) {
                 foreach ($BROWSER->Customs as $index => $value) {
                     if ($INPUTS[$index]->Active && $INPUTS[$index]->Custom) {
                         $value = $INPUTS[$index]->Type == "Text" ? $BROWSER->GetInputData($index) : $value;
                         $this->XMLCurrentChat .= "   <cf index=\"" . base64_encode($index) . "\">" . base64_encode($INPUTS[$index]->GetClientValue($value)) . "</cf>\r\n";
                     }
                 }
             }
             $this->XMLCurrentChat .= "   <pn acc=\"" . base64_encode($BROWSER->Activated ? "1" : "0") . "\">\r\n";
             foreach ($BROWSER->Members as $systemid => $member) {
                 $this->XMLCurrentChat .= "<member id=\"" . base64_encode($systemid) . "\" st=\"" . base64_encode($member->Status) . "\" dec=\"" . base64_encode($member->Declined ? 1 : 0) . "\" />\r\n";
             }
             $this->XMLCurrentChat .= "   </pn>\r\n";
             if (!empty($BROWSER->ChatVoucherId)) {
                 $chatticket = VisitorChat::GetMatchingVoucher($BROWSER->DesiredChatGroup, $BROWSER->ChatVoucherId);
                 if (!empty($chatticket)) {
                     $this->XMLCurrentChat .= "<cticket>" . $chatticket->GetXML(true) . "</cticket>\r\n";
                 }
             }
             $v_tp = 0;
             if (!empty($BROWSER->Members[CALLER_SYSTEM_ID])) {
                 if ($BROWSER->Activated == 0) {
                     $BROWSER->LoadForward(false, true);
                     if (!empty($BROWSER->Forward) && ($BROWSER->Forward->TargetSessId == CALLER_SYSTEM_ID || empty($BROWSER->Forward->TargetSessId))) {
                         $BROWSER->RepostChatHistory(3, $BROWSER->ChatId, CALLER_SYSTEM_ID, 0, 0, "", "", "", false, false);
                         $BROWSER->Forward->Destroy();
                     } else {
                         $BROWSER->RepostChatHistory(3, $BROWSER->ChatId, CALLER_SYSTEM_ID, 0, 0, "", "", "", false, false);
                     }
                 }
                 $v_tp = $BROWSER->Typing ? 1 : 0;
             }
             if (isset($this->Caller->ExternalChats[$BROWSER->SystemId]) && !empty($this->Caller->ExternalChats[$BROWSER->SystemId]->FileUploadRequest)) {
                 foreach ($this->Caller->ExternalChats[$BROWSER->SystemId]->FileUploadRequest as $request) {
                     if ($request->Error && $request->Permission != PERMISSION_NONE) {
                         if (!$request->Closed) {
                             $request->Close();
                         }
                         $this->XMLCurrentChat .= "   <fupr id=\"" . base64_encode($request->Id) . "\" cr=\"" . base64_encode($request->Created) . "\" fm=\"" . base64_encode($request->FileMask) . "\" fn=\"" . base64_encode($request->FileName) . "\" fid=\"" . base64_encode($request->FileId) . "\" cid=\"" . base64_encode($request->ChatId) . "\" error=\"" . base64_encode(true) . "\" />\r\n";
                     } else {
                         if ($request->Download) {
                             $this->XMLCurrentChat .= "   <fupr pm=\"" . base64_encode($request->Permission) . "\" id=\"" . base64_encode($request->Id) . "\" cr=\"" . base64_encode($request->Created) . "\" fm=\"" . base64_encode($request->FileMask) . "\" fn=\"" . base64_encode($request->FileName) . "\" cid=\"" . base64_encode($request->ChatId) . "\" fid=\"" . base64_encode($request->FileId) . "\" download=\"" . base64_encode(true) . "\" size=\"" . base64_encode(@filesize($request->GetFile())) . "\" />\r\n";
                         } else {
                             if ($request->Permission == PERMISSION_VOID) {
                                 $this->XMLCurrentChat .= "   <fupr id=\"" . base64_encode($request->Id) . "\" cr=\"" . base64_encode($request->Created) . "\" fm=\"" . base64_encode($request->FileMask) . "\" fn=\"" . base64_encode($request->FileName) . "\" fid=\"" . base64_encode($request->FileId) . "\" cid=\"" . base64_encode($request->ChatId) . "\" />\r\n";
                             } else {
                                 if ($request->Permission == PERMISSION_NONE) {
                                     $this->XMLCurrentChat .= "   <fupr pm=\"" . base64_encode($request->Permission) . "\" id=\"" . base64_encode($request->Id) . "\" cr=\"" . base64_encode($request->Created) . "\" fm=\"" . base64_encode($request->FileMask) . "\" fn=\"" . base64_encode($request->FileName) . "\" cid=\"" . base64_encode($request->ChatId) . "\" fid=\"" . base64_encode($request->FileId) . "\" />\r\n";
                                 } else {
                                     if ($request->Permission == PERMISSION_CHAT_ARCHIVE) {
                                         $this->XMLCurrentChat .= "   <fupr pm=\"" . base64_encode($request->Permission) . "\" id=\"" . base64_encode($request->Id) . "\" cr=\"" . base64_encode($request->Created) . "\" fm=\"" . base64_encode($request->FileMask) . "\" fn=\"" . base64_encode($request->FileName) . "\" cid=\"" . base64_encode($request->ChatId) . "\" fid=\"" . base64_encode($request->FileId) . "\" />\r\n";
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             $this->XMLCurrentChat .= "  </chat>\r\n";
             $this->XMLTyping .= "<v id=\"" . base64_encode($BROWSER->UserId . "~" . $BROWSER->BrowserId) . "\" tp=\"" . base64_encode($v_tp) . "\" />\r\n";
         } else {
             $this->XMLCurrentChat = "  <chat />\r\n";
         }
     }
 }
function reloadGroups($_user)
{
    global $CONFIG, $INTERNAL, $GROUPS;
    initData(array("INTERNAL", "FILTERS"));
    if (!empty($_GET[GET_EXTERN_GROUP])) {
        $_user->Browsers[0]->DesiredChatGroup = base64UrlDecode(getParam(GET_EXTERN_GROUP));
    }
    $opParam = getOperatorParameter();
    if (!empty($opParam)) {
        $_user->Browsers[0]->DesiredChatPartner = Operator::GetSystemId($opParam);
    }
    $groupbuilder = new GroupBuilder($INTERNAL, $GROUPS, $CONFIG, $_user->Browsers[0]->DesiredChatGroup, $_user->Browsers[0]->DesiredChatPartner);
    $groupbuilder->Generate($_user);
    if (!empty($opParam)) {
        $_user->Browsers[0]->DesiredChatPartner = Operator::GetSystemId($opParam);
    }
    $groupsAvailable = parseBool($groupbuilder->GroupAvailable || isset($_POST[GET_EXTERN_RESET]) && strlen($groupbuilder->ErrorHTML) <= 2);
    $_user->AddFunctionCall("lz_chat_set_groups(" . $groupsAvailable . ",\"" . $groupbuilder->Result . "\" ," . $groupbuilder->ErrorHTML . ");", false);
    $_user->AddFunctionCall("lz_chat_release(" . $groupsAvailable . "," . $groupbuilder->ErrorHTML . ");", false);
    return $_user;
}
Beispiel #21
0
* Copyright 2014 LiveZilla GmbH
* All rights reserved.
* LiveZilla is a registered trademark.
* 
* Improper changes to this file may cause critical errors.
***************************************************************************************/
define("IN_LIVEZILLA", true);
if (!defined("LIVEZILLA_PATH")) {
    define("LIVEZILLA_PATH", "./");
}
require LIVEZILLA_PATH . "_definitions/definitions.inc.php";
require LIVEZILLA_PATH . "_lib/functions.global.inc.php";
require LIVEZILLA_PATH . "_lib/objects.global.users.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.dynamic.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.protocol.inc.php";
header("Content-Type: image/jpg;");
@set_error_handler("handleError");
if (isset($_GET["intid"]) && initDataProvider()) {
    initData(array("INTERNAL"));
    $id = Operator::GetSystemId(base64UrlDecode($_GET["intid"]));
    if (isset($INTERNAL[$id])) {
        if (!empty($INTERNAL[$id]->WebcamPicture)) {
            exit(base64_decode($INTERNAL[$id]->WebcamPicture));
        } else {
            if (!empty($INTERNAL[$id]->ProfilePicture)) {
                exit(base64_decode($INTERNAL[$id]->ProfilePicture));
            }
        }
    }
}
exit(getFile("./images/nopic.jpg"));
 function Close()
 {
     global $INTERNAL, $CONFIG;
     initData(true);
     if ($this->Type == STATISTIC_PERIOD_TYPE_DAY) {
         if ($this->CreateReport) {
             $this->SaveReportToFile();
         }
         if ($this->CreateVisitorList) {
             $this->SaveVisitorListToFile();
         }
         queryDB(true, "DELETE FROM `" . DB_PREFIX . DATABASE_VISITORS . "` WHERE `last_active`<'" . @mysql_real_escape_string($this->Delimiters[1] - $CONFIG["timeout_clients"]) . "';");
         queryDB(true, "DELETE FROM `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` WHERE `last_active`<'" . @mysql_real_escape_string($this->Delimiters[1] - $CONFIG["timeout_clients"]) . "';");
         queryDB(true, "DELETE FROM `" . DB_PREFIX . DATABASE_OPERATOR_STATUS . "` WHERE `" . DB_PREFIX . DATABASE_OPERATOR_STATUS . "`.`confirmed`<'" . @mysql_real_escape_string($this->Delimiters[1]) . "';");
     } else {
         if ($this->CreateReport) {
             $this->SaveReportToFile();
         }
     }
 }
 function Close()
 {
     global $CONFIG;
     initData(array("INTERNAL"));
     if ($this->Type == STATISTIC_PERIOD_TYPE_DAY) {
         $this->CleanDatabases($CONFIG["gl_dvhd"] * 2);
         if ($this->CreateReport) {
             $this->SaveReportToFile();
         }
         if ($this->CreateVisitorList) {
             $this->SaveVisitorListToFile();
         }
         $this->CleanDatabases($CONFIG["gl_dvhd"]);
     } else {
         if ($this->CreateReport) {
             $this->SaveReportToFile();
         }
     }
 }
function getBrowserLocalization($country = "")
{
    global $LANGUAGES, $COUNTRIES;
    initData(array("LANGUAGES", "COUNTRIES"));
    $base = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];
    $language = str_replace(array(",", "_", " "), array(";", "-", ""), !empty($_GET[GET_EXTERN_USER_LANGUAGE]) ? strtoupper(base64UrlDecode($_GET[GET_EXTERN_USER_LANGUAGE])) : (!empty($base) ? strtoupper($base) : ""));
    if (strlen($language) > 5 || strpos($language, ";") !== false) {
        $parts = explode(";", $language);
        if (count($parts) > 0) {
            $language = $parts[0];
        } else {
            $language = substr($language, 0, 5);
        }
    }
    if (strlen($language) >= 2) {
        $parts = explode("-", $language);
        if (!isset($LANGUAGES[$language])) {
            $language = $parts[0];
            if (!isset($LANGUAGES[$language])) {
                $language = "";
            }
        }
        if (count($parts) > 1 && isset($COUNTRIES[$parts[1]])) {
            $country = $parts[1];
        }
    } else {
        if (strlen($language) < 2) {
            $language = "";
        }
    }
    return array($language, $country);
}
function getJSCustomArray($_getCustomParams = "", $_fromHistory = null)
{
    global $INPUTS;
    initData(array("INPUTS"));
    $valArray = array();
    foreach ($INPUTS as $index => $input) {
        if ($input->Active && $input->Custom) {
            if (isset($_GET["cf" . $input->Index])) {
                $valArray[$index] = "'" . getParam("cf" . $input->Index) . "'";
            } else {
                if (!isnull(getCookieValue("cf_" . $input->Index)) && $input->Cookie) {
                    $valArray[$index] = "'" . base64UrlEncode(getCookieValue("cf_" . $input->Index)) . "'";
                } else {
                    if (is_array($_fromHistory) && isset($_fromHistory[$input->Index]) && !empty($_fromHistory[$input->Index])) {
                        $valArray[$index] = "'" . base64UrlEncode($_fromHistory[$input->Index]) . "'";
                    } else {
                        $valArray[$index] = "''";
                    }
                }
            }
        } else {
            if ($input->Custom) {
                $valArray[$index] = "''";
            }
        }
    }
    ksort($valArray);
    foreach ($valArray as $param) {
        if (!empty($_getCustomParams)) {
            $_getCustomParams .= ",";
        }
        $_getCustomParams .= $param;
    }
    return $_getCustomParams;
}
function getBrowserLocalization($country = "")
{
    global $LANGUAGES, $COUNTRIES;
    initData(false, false, false, false, false, true, true);
    $language = str_replace(array(",", "_", " "), array(";", "-", ""), !empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? strtoupper($_SERVER["HTTP_ACCEPT_LANGUAGE"]) : "");
    if (strlen($language) > 5 || strpos($language, ";") !== false) {
        $parts = explode(";", $language);
        if (count($parts) > 0) {
            $language = $parts[0];
        } else {
            $language = substr($language, 0, 5);
        }
    }
    if (strlen($language) >= 2) {
        $parts = explode("-", $language);
        if (!isset($LANGUAGES[$language])) {
            $language = $parts[0];
            if (!isset($LANGUAGES[$language])) {
                if (DEBUG_MODE) {
                    logit(@$_SERVER["HTTP_ACCEPT_LANGUAGE"] . " - " . $language, LIVEZILLA_PATH . "_log/missing_language.txt");
                }
                $language = "";
            }
        }
        if (count($parts) > 1 && isset($COUNTRIES[$parts[1]])) {
            $country = $parts[1];
        }
    } else {
        if (strlen($language) < 2) {
            $language = "";
        }
    }
    return array($language, $country);
}
 function Load()
 {
     global $INTERNAL;
     $this->Status = CHAT_STATUS_OPEN;
     $this->AppendFromCookies();
     $this->LastActive = time();
     $this->ChatRequestReceiptants = array();
     $result = queryDB(true, "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` WHERE `visitor_id`='" . @mysql_real_escape_string($this->UserId) . "' AND `browser_id`='" . @mysql_real_escape_string($this->BrowserId) . "' ORDER BY `first_active` DESC LIMIT 2;");
     if ($result) {
         while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
             if (empty($row["external_close"])) {
                 $this->FirstCall = !empty($row["exit"]);
                 $this->SetValues($row);
             } else {
                 if (!empty($row["request_operator"]) && empty($this->DesiredChatPartner)) {
                     $this->DesiredChatPartner = $row["request_operator"];
                 }
             }
         }
     }
     initData(true);
     $result = queryDB(true, "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITOR_CHAT_OPERATORS . "` WHERE `chat_id`='" . @mysql_real_escape_string($this->ChatId) . "' AND `declined`=0;");
     while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
         if (isset($INTERNAL[$row["user_id"]])) {
             $this->ChatRequestReceiptants[] = $row["user_id"];
             $this->InternalUser = $INTERNAL[$row["user_id"]];
         }
     }
 }
 } else {
     if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.1.1") {
         $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
         if (isset($_GET[GET_EXTERN_USER_HEADER]) && !empty($_GET[GET_EXTERN_USER_HEADER])) {
             $html = str_replace("<!--logo-->", "<img src=\"" . base64UrlDecode($_GET[GET_EXTERN_USER_HEADER]) . "\" border=\"0\"><br>", $html);
         } else {
             if (!empty($CONFIG["gl_cali"])) {
                 $html = str_replace("<!--logo-->", "<img src=\"" . $CONFIG["gl_cali"] . "\" border=\"0\"><br>", $html);
             }
         }
         if (!empty($CONFIG["gl_cahi"])) {
             $html = str_replace("<!--background-->", "<img src=\"" . $CONFIG["gl_cahi"] . "\" border=\"0\"><br>", $html);
         }
     } else {
         if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.chat.0.0" && isset($_GET[GET_EXTERN_GROUP])) {
             initData(array("GROUPS"));
             $groupid = base64_decode($_GET[GET_EXTERN_GROUP]);
             if (!empty($groupid) && isset($GROUPS[$groupid])) {
                 $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
                 $html = str_replace("<!--SM_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[0]) ? "none" : "", $html);
                 $html = str_replace("<!--SO_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[1]) ? "none" : "", $html);
                 $html = str_replace("<!--PR_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[2]) ? "none" : "", $html);
                 $html = str_replace("<!--RA_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[3]) ? "none" : "", $html);
                 $html = str_replace("<!--FV_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[4]) ? "none" : "", $html);
                 $html = str_replace("<!--FU_HIDDEN-->", empty($GROUPS[$groupid]->ChatFunctions[5]) ? "none" : "", $html);
                 $html = str_replace("<!--post_chat_html-->", $GROUPS[$groupid]->PostHTML, $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])) {
Beispiel #29
0
    $TRACKINGSCRIPT = str_replace("<!--user_email-->", $email, $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--height-->", $CONFIG["wcl_window_height"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--width-->", $CONFIG["wcl_window_width"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--get_track_params-->", getParams("", array("ws" => true, "ecsgs" => true, "ecsge" => true, "ecsc" => true, "ecsy" => true, "ecsx" => true, "ecsb" => true, "ecsa" => true, "ecslw" => true, "echc" => true, "ecfs" => true, "ecfe" => true, "echt" => true, "echst" => true, "ecoht" => true, "ecohst" => true, "ovlto" => true, "ovlt" => true, "ovlp" => true, "ovlml" => true, "ovlmr" => true, "ovlmt" => true, "ovlmb" => true, "ovls" => true, "ovloo" => true, "ovlc" => true, "ovlapo" => true, "ovlct" => true, GET_EXTERN_GROUP => true, "intid" => true, "pref" => true, "cboo" => true, "hg" => true, "fbpos" => false, "fbw" => false, "fbh" => false, "fbshx" => false, "fbshy" => false, "fbshb" => false, "fbshc" => false, "fbmt" => false, "fbmr" => false, "fbmb" => false, "fbml" => false, "fboo" => false, "eca" => true, "ecw" => true, "ech" => true, "ecmb" => true, "ecml" => true, "cf0" => true, "cf1" => true, "cf2" => true, "cf3" => true, "cf4" => true, "cf5" => true, "cf6" => true, "cf7" => true, "cf8" => true, "cf9" => true)), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--server-->", LIVEZILLA_URL, $TRACKINGSCRIPT);
} else {
    $TRACKINGSCRIPT = "lz_tracking_set_sessid(\"" . base64_encode(CALLER_USER_ID) . "\",\"" . base64_encode(CALLER_BROWSER_ID) . "\");";
    if (BaseURL::IsInputURL() && strpos(BaseURL::GetInputURL(), GET_INTERN_COBROWSE) !== false) {
        abortTracking(1);
    }
    $BROWSER = VisitorBrowser::FromCache(CALLER_USER_ID, CALLER_BROWSER_ID);
    $EXTERNALUSER->AddBrowser($BROWSER);
    if ($EXTERNALUSER->FirstCall && !$BROWSER->GetFirstCall()) {
        $EXTERNALUSER->FirstCall = false;
    }
    initData(array("INTERNAL", "FILTERS", "EVENTS"));
    define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), CALLER_USER_ID));
    define("IS_FLOOD", $BROWSER->GetFirstCall() && Filter::IsFlood(getIP(), CALLER_USER_ID));
    if (IS_FILTERED || IS_FLOOD || !empty($_GET["deactr"]) || getCookieValue(OO_TRACKING_FILTER_NAME) != null) {
        if (!IS_FILTERED) {
            Filter::Create($_SERVER["REMOTE_ADDR"], CALLER_USER_ID, OO_TRACKING_FILTER_NAME, isset($_GET["deactr"]) && is_int($_GET["deactr"]) ? $_GET["deactr"] : 365, true, true);
        }
        $monitoringActive = false;
        abortTracking(556);
    }
    $BROWSER->Customs = getCustomArray($BROWSER->Customs);
    if ($INPUTS[111]->IsServerInput()) {
        $BROWSER->Fullname = cutString($INPUTS[111]->GetServerInput(), 255);
    } else {
        if ($INPUTS[111]->Cookie) {
            $BROWSER->Fullname = getCookieValue("form_111");
function reloadGroups($_user, $_overlay = false, $_preSelect = true, $_declined = false)
{
    global $CONFIG, $INTERNAL, $GROUPS;
    initData(array("INTERNAL", "FILTERS"));
    $grParam = UserGroup::ReadParams();
    $opParam = Operator::ReadParams();
    if (!empty($grParam) && empty($_user->Browsers[0]->DesiredChatGroup)) {
        $_user->Browsers[0]->DesiredChatGroup = $grParam;
    }
    if (!empty($opParam)) {
        $_user->Browsers[0]->DesiredChatPartner = Operator::GetSystemId($opParam);
    }
    $groupbuilder = new GroupBuilder($INTERNAL, $GROUPS, $CONFIG, $_user->Browsers[0]->DesiredChatGroup, $_user->Browsers[0]->DesiredChatPartner);
    $groupbuilder->Generate($_user);
    if (!empty($opParam)) {
        $_user->Browsers[0]->DesiredChatPartner = Operator::GetSystemId($opParam);
    }
    $groupsAvailable = parseBool($groupbuilder->GroupAvailable || isset($_POST[GET_EXTERN_RESET]) && strlen($groupbuilder->ErrorHTML) <= 2);
    $_preSelect = $_preSelect ? base64UrlEncode($_user->Browsers[0]->DesiredChatGroup) : "";
    $_user->AddFunctionCall("lz_chat_set_groups(" . $groupsAvailable . ",\"" . $groupbuilder->Result . "\" ," . $groupbuilder->ErrorHTML . ",'" . $_preSelect . "');", false);
    if (!$_overlay) {
        $_user->AddFunctionCall("lz_chat_release(" . $groupsAvailable . "," . $groupbuilder->ErrorHTML . ");", false);
    }
    return $_user;
}