Esempio n. 1
0
    $html = str_replace("<!--direct_login-->", parseBool(isset($_GET[GET_EXTERN_USER_NAME]) && !isset($_GET[GET_EXTERN_RESET]) || isset($_GET["dl"])), $html);
    $html = str_replace("<!--preselect_ticket-->", parseBool(isset($_GET["pt"])), $html);
    $html = str_replace("<!--is_ie-->", parseBool(!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false), $html);
    $html = str_replace("<!--setup_error-->", base64_encode(buildLoginErrorField()), $html);
    $html = str_replace("<!--offline_message_mode-->", $CONFIG["gl_om_mode"], $html);
    $html = str_replace("<!--offline_message_http-->", $CONFIG["gl_om_http"], $html);
    $html = str_replace("<!--lang_client_queue_message-->", $CONFIG["gl_sho_qu_inf"] == 1 ? $LZLANG["client_queue_message"] : $LZLANG["client_ints_are_busy"], $html);
    $html = str_replace("<!--checkout_url-->", !empty($CONFIG["db"]["ccpp"]["Custom"]) ? $CONFIG["db"]["ccpp"]["Custom"]->URL : "", $html);
    $html = str_replace("<!--checkout_only-->", parseBool(!empty($_GET["co"]) && !empty($_GET[GET_EXTERN_GROUP])), $html);
    $html = str_replace("<!--checkout_extend_success-->", parseBool(!empty($_GET["co"]) && !empty($_GET["vc"])), $html);
    $html = str_replace("<!--function_callback-->", parseBool(!empty($_GET["cmb"]) || !empty($_GET["ofc"])), $html);
    $html = str_replace("<!--function_chat-->", parseBool(empty($_GET["hfc"])), $html);
    $html = str_replace("<!--hide_group_select_chat-->", parseBool(getOParam("hcgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $html);
    $html = str_replace("<!--hide_group_select_ticket-->", parseBool(getOParam("htgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $html);
    $html = str_replace("<!--require_group_selection-->", parseBool(getOParam("rgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $html);
    $html = str_replace("<!--offline_message_pop-->", parseBool(!empty($CONFIG["gl_om_pop_up"]) || empty($CONFIG["gl_om_mode"])), $html);
    $html = str_replace("<!--misc_frame_height-->", !$small && $CONFIG["gl_uret"] && $CONFIG["gl_otrs"] ? 52 : (!$small && ($CONFIG["gl_uret"] || $CONFIG["gl_otrs"]) ? 31 : 0), $html);
} else {
    if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.lgin.1.0") {
        initData(array("INTERNAL", "GROUPS"));
        $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
        $html = isset($CONFIG["gl_site_name"]) ? str_replace("<!--config_name-->", $CONFIG["gl_site_name"], $html) : str_replace("<!--config_name-->", "LiveZilla", $html);
        $html = getChatLoginInputs($html, MAX_INPUT_LENGTH);
        $html = str_replace("<!--alert-->", getAlertTemplate(), $html);
        $html = str_replace("<!--com_chats-->", getChatVoucherTemplate(), $html);
        $html = str_replace("<!--ssl_secured-->", getScheme() == SCHEME_HTTP_SECURE && !empty($CONFIG["gl_sssl"]) ? "" : "display:none;", $html);
    } else {
        if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.lgin.0.0") {
            $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
        } else {
            if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.chat" && isset($_POST[GET_EXTERN_GROUP])) {
function processResource($_userId, $_resId, $_value, $_type, $_title, $_disc, $_parentId, $_rank, $_size = 0)
{
    if ($_size == 0) {
        $_size = strlen($_title);
    }
    $result = queryDB(true, "SELECT `id` FROM `" . DB_PREFIX . DATABASE_RESOURCES . "` WHERE `id`='" . @mysql_real_escape_string($_resId) . "'");
    if (@mysql_num_rows($result) == 0) {
        queryDB(true, $result = "INSERT INTO `" . DB_PREFIX . DATABASE_RESOURCES . "` (`id`,`owner`,`editor`,`value`,`edited`,`title`,`created`,`type`,`discarded`,`parentid`,`rank`,`size`) VALUES ('" . @mysql_real_escape_string($_resId) . "','" . @mysql_real_escape_string($_userId) . "','" . @mysql_real_escape_string($_userId) . "','" . @mysql_real_escape_string($_value) . "','" . @mysql_real_escape_string(time()) . "','" . @mysql_real_escape_string($_title) . "','" . @mysql_real_escape_string(time()) . "','" . @mysql_real_escape_string($_type) . "','0','" . @mysql_real_escape_string($_parentId) . "','" . @mysql_real_escape_string($_rank) . "','" . @mysql_real_escape_string($_size) . "')");
    } else {
        queryDB(true, $result = "UPDATE `" . DB_PREFIX . DATABASE_RESOURCES . "` SET `value`='" . @mysql_real_escape_string($_value) . "',`editor`='" . @mysql_real_escape_string($_userId) . "',`title`='" . @mysql_real_escape_string($_title) . "',`edited`='" . @mysql_real_escape_string(time()) . "',`discarded`='" . @mysql_real_escape_string(parseBool($_disc, false)) . "',`parentid`='" . @mysql_real_escape_string($_parentId) . "',`rank`='" . @mysql_real_escape_string($_rank) . "',`size`='" . @mysql_real_escape_string($_size) . "' WHERE id='" . @mysql_real_escape_string($_resId) . "' LIMIT 1");
        if (!empty($_disc) && ($_type == RESOURCE_TYPE_FILE_INTERNAL || $_type == RESOURCE_TYPE_FILE_EXTERNAL) && @file_exists("./uploads/" . $_value) && strpos($_value, "..") === false) {
            @unlink("./uploads/" . $_value);
        }
    }
}
Esempio n. 3
0
 public function parse($xml)
 {
     if ((string) $xml->getName() == "form") {
         foreach ($xml->attributes() as $name => $val) {
             switch ($name) {
                 case 'num':
                     $this->number = (int) $val;
                     break;
                 case 'name':
                     $this->name = (string) $val;
                     break;
                 case 'key':
                     $this->key = (string) $val;
                     break;
                 case 'main':
                     $this->isMain = parseBool((string) $val);
                     break;
                 case 'group':
                     $this->group = (int) $val;
                     break;
             }
         }
     } elseif ((string) $xml->getName() == "table") {
         //parse out table data for a v2 definition
         foreach ($xml->table_data[0]->attributes() as $name => $val) {
             //					echo $name;
             switch ($name) {
                 case 'table_num':
                     $this->number = (int) $val;
                     break;
                 case 'table_name':
                     $this->name = (string) $val;
                     break;
                 case 'table_key':
                     $this->key = (string) $val;
                     break;
                 case 'main':
                     try {
                         $this->isMain = parseBool((string) $val);
                     } catch (Exception $e) {
                         throw new Exception("The main attribute for {$this->name} must be true or false.");
                     }
                     break;
             }
         }
     } else {
         $this->number = 1;
         $this->name = "table";
         $this->key = "";
     }
     if (!$this->name || $this->name == "") {
         throw new Exception("All forms must have a name,");
     }
     if (!$this->key || $this->key == "") {
         throw new Exception("No key field specified for {$this->name}");
     }
     $this->titleFields = array();
     //parse elements
     $p = 0;
     $keyFieldParsed = false;
     foreach ($xml->children() as $field) {
         if (preg_match('/^(input|select1?|radio|textarea|photo|gps|location|barcode|audio|video|group|branch)$/', $field->getName())) {
             $atts = $field->attributes();
             if (!isset($atts['ref']) || trim((string) $atts['ref']) == "") {
                 throw new Exception("Every form field must have a ref attribute, which cannot be blank");
             }
             if (!array_key_exists((string) $atts['ref'], $this->fields)) {
                 $fld = new EcField();
             } elseif ($this->fields[(string) $atts['ref']]->idField) {
                 $fld = $this->fields[(string) $atts['ref']];
             } else {
                 throw new Exception("duplicate field name " . (string) $atts['ref'] . " in the form {$this->name}");
             }
             $fld->parse($field);
             if ($fld->name == $this->key) {
                 $keyFieldParsed = true;
             }
             $fld->form = $this;
             foreach ($this->survey->tables as $tbl) {
                 if ($tbl->key == $fld->name) {
                     $fld->fkTable = $tbl->name;
                     $fld->fkField = $tbl->key;
                 }
             }
             $fld->active = true;
             $fld->position = $p;
             $this->fields[$fld->name] = $fld;
             if ($fld->type == "branch") {
                 if (!$keyFieldParsed) {
                     throw new Exception(sprintf('The key field "%s" must be positioned before the branch form "%s" ', $this->key, $fld->name));
                 }
                 array_push($this->branches, $fld->branch_form);
                 array_push($this->branchfields, $fld->name);
             }
             if ($fld->title) {
                 array_push($this->titleFields, $fld->name);
             }
             ++$p;
         }
     }
     foreach ($this->fields as $name => $field) {
         if ($field->name == '' || !$field->name) {
             unset($this->fields[$name]);
         }
     }
     if (!array_key_exists($this->key, $this->fields) && $this->number > 0) {
         throw new Exception("The form {$this->name} does not contain the field {$this->key} which was specified as the primary key.");
     }
     if (array_key_exists($this->key, $this->fields)) {
         $this->fields[$this->key]->key = true;
     }
 }
 function GetCommand()
 {
     return "lz_tracking_request_chat('" . base64_encode($this->Id) . "','" . base64_encode($this->Text) . "','" . base64_encode($this->HTML) . "'," . $this->Width . "," . $this->Height . "," . $this->Margin[0] . "," . $this->Margin[1] . "," . $this->Margin[2] . "," . $this->Margin[3] . ",'" . $this->Position . "'," . $this->Speed . "," . parseBool($this->Slide) . ");";
 }
function processResource($_userId, $_resId, $_value, $_type, $_title, $_disc, $_parentId, $_rank, $_size = 0, $_tags = "")
{
    if ($_size == 0) {
        $_size = strlen($_title);
    }
    $result = queryDB(true, "SELECT `id`,`value` FROM `" . DB_PREFIX . DATABASE_RESOURCES . "` WHERE `id`='" . DBManager::RealEscape($_resId) . "'");
    if (DBManager::GetRowCount($result) == 0) {
        if (!$_disc) {
            queryDB(true, $result = "INSERT INTO `" . DB_PREFIX . DATABASE_RESOURCES . "` (`id`,`owner`,`editor`,`value`,`edited`,`title`,`created`,`type`,`discarded`,`parentid`,`rank`,`size`,`tags`) VALUES ('" . DBManager::RealEscape($_resId) . "','" . DBManager::RealEscape($_userId) . "','" . DBManager::RealEscape($_userId) . "','" . DBManager::RealEscape($_value) . "','" . DBManager::RealEscape(time()) . "','" . DBManager::RealEscape($_title) . "','" . DBManager::RealEscape(time()) . "','" . DBManager::RealEscape($_type) . "','0','" . DBManager::RealEscape($_parentId) . "','" . DBManager::RealEscape($_rank) . "','" . DBManager::RealEscape($_size) . "','" . DBManager::RealEscape($_tags) . "')");
        }
    } else {
        $row = DBManager::FetchArray($result);
        queryDB(true, $result = "UPDATE `" . DB_PREFIX . DATABASE_RESOURCES . "` SET `value`='" . DBManager::RealEscape($_value) . "',`editor`='" . DBManager::RealEscape($_userId) . "',`tags`='" . DBManager::RealEscape($_tags) . "',`title`='" . DBManager::RealEscape($_title) . "',`edited`='" . DBManager::RealEscape(time()) . "',`discarded`='" . DBManager::RealEscape(parseBool($_disc, false)) . "',`parentid`='" . DBManager::RealEscape($_parentId) . "',`rank`='" . DBManager::RealEscape($_rank) . "',`size`='" . DBManager::RealEscape($_size) . "' WHERE id='" . DBManager::RealEscape($_resId) . "' LIMIT 1");
        if (!empty($_disc) && ($_type == RESOURCE_TYPE_FILE_INTERNAL || $_type == RESOURCE_TYPE_FILE_EXTERNAL) && @file_exists("./uploads/" . $row["value"]) && strpos($row["value"], "..") === false) {
            @unlink("./uploads/" . $row["value"]);
        }
    }
}
Esempio n. 6
0
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.external.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();
if (!empty($_GET["value"]) && strlen($_GET["value"]) == 16) {
    $ticket = VisitorChat::GetMatchingVoucher($_GET[GET_EXTERN_GROUP], $_GET["value"]);
    if (!empty($ticket) && !$ticket->CheckForVoid() && $ticket->Paid) {
        $ticket->UpdateVoucherChatTime(0, empty($ticket->FirstUsed));
        $sessions = $ticket->ChatSessionsMax < 0 ? 0 : $ticket->ChatSessionsMax;
        if ($result = queryDB(true, "SELECT `exit` FROM `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` WHERE `chat_ticket_id`='" . DBManager::RealEscape($ticket->Id) . "' AND `exit`=0 LIMIT 1;")) {
            if ($row = DBManager::FetchArray($result)) {
                exit("lz_validate_com_chat_input_result(false,true,1,'',0,0,0,false,false,false);");
            }
        }
        exit("lz_validate_com_chat_input_result(true,false,1,'" . $ticket->Id . "'," . $ticket->ChatTime . "," . $ticket->ChatTimeMax . "," . $ticket->ChatSessions . "," . $ticket->ChatSessionsMax . "," . $ticket->VoucherAutoExpire . "," . parseBool($ticket->VoucherAutoExpire < time()) . ");");
    } else {
        if (!empty($ticket)) {
            exit("lz_validate_com_chat_input_result(false,false,1,'',0,0,0,false,false,false);");
        }
    }
}
exit("lz_validate_com_chat_input_result(false,false,0,'',0,0,0,false,false,false);");
unloadDataProvider();
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;
}
Esempio n. 8
0
        $USER->AddFunctionCall("lz_chat_add_html_element('" . base64_encode($HTML) . "',true," . $lpr . "," . $LMR . ",'" . base64_encode($LASTPOSTER) . "','" . @$_GET["lp"] . "'," . $oppostcount . ");", false);
    }
    $USER->AddFunctionCall("lz_chat_set_connecting(" . parseBool(!$BOTMODE && (!empty($USER->Browsers[0]->ChatId) && !$USER->Browsers[0]->InternalActivation && !$USER->Browsers[0]->Closed && !$USER->Browsers[0]->Declined)) . ",'" . $USER->Browsers[0]->SystemId . "'," . parseBool(!empty($USER->Browsers[0]->InternalUser) && $USER->Browsers[0]->InternalUser->Status == USER_STATUS_AWAY) . ");", false);
    if ($REPOLL) {
        $USER->AddFunctionCall("lz_tracking_poll_server(1211);", false);
    }
    if ($USER->Browsers[0]->TranslationSettings != null) {
        $USER->AddFunctionCall("lz_chat_set_translation(" . $USER->Browsers[0]->TranslationSettings[0] . ",'" . base64_encode($USER->Browsers[0]->TranslationSettings[1]) . "','" . base64_encode($USER->Browsers[0]->TranslationSettings[2]) . "');", false);
    } else {
        $USER->AddFunctionCall("lz_chat_set_translation(null,null,null);", false);
    }
    if ($FULL) {
        $USER->AddFunctionCall("lz_chat_change_fullname(lz_external.Username);", false);
    }
    if (!empty($USER->Browsers[0]->DesiredChatGroup)) {
        $USER->AddFunctionCall("lz_chat_inputs(" . parseBool(in_array("111", $GROUPS[$USER->Browsers[0]->DesiredChatGroup]->ChatInputsMandatory)) . "," . parseBool(in_array("112", $GROUPS[$USER->Browsers[0]->DesiredChatGroup]->ChatInputsMandatory)) . "," . parseBool(in_array("111", $GROUPS[$USER->Browsers[0]->DesiredChatGroup]->TicketInputsMandatory)) . "," . parseBool(in_array("112", $GROUPS[$USER->Browsers[0]->DesiredChatGroup]->TicketInputsMandatory)) . ");", false);
    } else {
        $USER->AddFunctionCall(false, false, false, false);
    }
}
$OVLPAGE = $USER->Response;
function postHTML($_text, $_translation, $_add, $_operator, $_name)
{
    global $LZLANG;
    $post = $_add ? !$_operator ? getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_EXTERN) : getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_OPERATOR) : getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_ADD);
    $post = str_replace("<!--name-->", $_operator ? $_name : (!empty($_name) ? $_name : $LZLANG["client_guest"]), $post);
    $post = str_replace("<!--time-->", date("H:i"), $post);
    $color = getBrightness(base64UrlDecode($_GET["ovlc"])) > getBrightness(base64UrlDecode($_GET["ovlct"])) ? $_GET["ovlct"] : $_GET["ovlc"];
    $post = str_replace("<!--color-->", $_operator ? hexDarker(str_replace("#", "", base64UrlDecode($color)), 30) : "#000000", $post);
    $_text = preg_replace('/(<(?!img)\\w+[^>]+)(style="[^"]+")([^>]*)(>)/', '${1}${3}${4}', strip_tags($_text, "<a><br><b><ul><li><ol><b><i><u><strong><img>"));
    if (!empty($_translation)) {
Esempio n. 9
0
    $html = str_replace("<!--connection_error_span-->", CONNECTION_ERROR_SPAN, $html);
    $html = replaceLoginDetails($html);
    $html = geoReplacements($html);
    $html = str_replace("<!--requested_intern_userid-->", !empty($_GET[GET_EXTERN_INTERN_USER_ID]) && isset($INTERNAL[getInternalSystemIdByUserId(base64UrlDecode($_GET[GET_EXTERN_INTERN_USER_ID]))]) ? base64UrlDecode($_GET[GET_EXTERN_INTERN_USER_ID]) : "", $html);
    $html = str_replace("<!--geo_resolute-->", parseBool(!isSSpanFile() && !empty($CONFIG["gl_pr_ngl"]) && !(getCookieValue("geo_data") != null && getCookieValue("geo_data") > time() - 2592000)), $html);
    $html = str_replace("<!--area_code-->", isset($_GET[GET_TRACK_SPECIAL_AREA_CODE]) ? "&code=" . getParam(GET_TRACK_SPECIAL_AREA_CODE) : "", $html);
    $html = str_replace("<!--template_message_intern-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_INTERN)), $html);
    $html = str_replace("<!--template_message_extern-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_EXTERN)), $html);
    $html = str_replace("<!--template_message_add-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_ADD)), $html);
    $html = str_replace("<!--template_message_add_alt-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_ADD_ALTERNATE)), $html);
    $html = str_replace("<!--direct_login-->", parseBool(isset($_GET[GET_EXTERN_USER_NAME]) && !isset($_GET[GET_EXTERN_RESET])), $html);
    $html = str_replace("<!--is_ie-->", parseBool(!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false), $html);
    $html = str_replace("<!--setup_error-->", base64_encode(buildLoginErrorField()), $html);
    $html = str_replace("<!--offline_message_mode-->", $CONFIG["gl_om_mode"], $html);
    $html = str_replace("<!--offline_message_http-->", $CONFIG["gl_om_http"], $html);
    $html = str_replace("<!--offline_message_pre_chat-->", parseBool($CONFIG["gl_no_om_sp"] == 1), $html);
    $html = str_replace("<!--lang_client_queue_message-->", $CONFIG["gl_sho_qu_inf"] == 1 ? $LZLANG["client_queue_message"] : $LZLANG["client_ints_are_busy"], $html);
} else {
    if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.login.1.0") {
        initData(true, true, false, false);
        $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
        $html = isset($CONFIG["gl_site_name"]) ? str_replace("<!--config_name-->", $CONFIG["gl_site_name"], $html) : str_replace("<!--config_name-->", "LiveZilla", $html);
        $html = getChatLoginInputs($html);
        $html = replaceLoginDetails($html);
        $html = str_replace("<!--alert-->", getAlertTemplate(), $html);
        $html = str_replace("<!--info_text-->", $CONFIG["gl_info"], $html);
        $html = str_replace("<!--login_trap-->", getFile(TEMPLATE_LOGIN_TRAP), $html);
        $html = str_replace("<!--group_select_visibility-->", defined("HideChatGroupSelection") || count($GROUPS) < 2 ? "display:none;" : "", $html);
    } else {
        if ($_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.login.0.0") {
            $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl");
Esempio n. 10
0
        $USER->AddFunctionCall(false, false, false, false);
    }
    if ($USER->Browsers[0]->Declined) {
        $chatst = 0;
    } else {
        if ($BOTMODE && !empty($USER->Browsers[0]->InternalUser) && $USER->Browsers[0]->InternalUser->IsBot) {
            $chatst = 1;
        } else {
            if ($USER->Browsers[0]->Waiting || $USER->Browsers[0]->Status > 0) {
                $chatst = max($USER->Browsers[0]->Status, $USER->Browsers[0]->Waiting);
            } else {
                $chatst = 0;
            }
        }
    }
    $USER->AddFunctionCall("lz_chat_set_application(" . parseBool($chat_available) . "," . parseBool($BOTMODE) . "," . parseBool($HUMAN_GENERAL) . ",'" . $bottitle . "'," . $chatst . "," . parseBool($USER->Browsers[0]->Declined) . ");", false);
    if (@$_GET["pc"] == 1) {
        $USER->AddFunctionCall("lz_chat_set_focus();", false);
    }
}
$OVLPAGE = $USER->Response;
function postHTML($_text, $_translation, $_add, $_operator, $_name, $_time, $_senderId)
{
    global $LZLANG, $INTERNAL, $USER;
    $post = $_add ? !$_operator ? getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_EXTERN) : getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_OPERATOR) : (!$_operator ? getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_ADD) : getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_OPERATOR_ADD));
    if ($_operator && !empty($USER->Browsers[0]->DesiredChatPartner) && isset($INTERNAL[$USER->Browsers[0]->DesiredChatPartner]) && isset($INTERNAL[$_senderId])) {
        $image = "<img class=\"lz_overlay_chat_operator_picture\" src=\"" . LIVEZILLA_URL . $INTERNAL[$USER->Browsers[0]->DesiredChatPartner]->GetOperatorPictureFile() . "\" width=\"52\" height=\"39\">";
    } else {
        $image = "";
    }
    $post = str_replace("<!--name-->", $_operator ? $_name : (!empty($_name) ? $_name : $LZLANG["client_guest"]), $post);
Esempio n. 11
0
    if (!isset($_GET[GET_TRACK_NO_SEARCH_ENGINE])) {
        header("Location: http://www.livezilla.net");
        exit(getFile(TEMPLATE_HTML_SUPPORT));
    }
    $TRACKINGSCRIPT = getFile(TEMPLATE_SCRIPT_GLOBAL) . getFile(TEMPLATE_SCRIPT_TRACK) . getFile(TEMPLATE_SCRIPT_BOX);
    $TRACKINGSCRIPT = str_replace("<!--server-->", LIVEZILLA_URL, $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--area_code-->", !isnull(getParam(GET_TRACK_SPECIAL_AREA_CODE)) ? $_GET[GET_TRACK_SPECIAL_AREA_CODE] : "", $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--browser_id-->", CALLER_BROWSER_ID, $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--user_id-->", CALLER_USER_ID, $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--connection_error_span-->", CONNECTION_ERROR_SPAN, $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--poll_frequency-->", $CONFIG["poll_frequency_tracking"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--timeout-->", $CONFIG["timeout_track"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--height-->", $CONFIG["wcl_window_height"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--width-->", $CONFIG["wcl_window_width"], $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = geoReplacements($TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--geo_resolute-->", parseBool(!isSSpanFile() && !dataSetExists($externalUser->ExternalStatic->SessionFile) && !isnull($CONFIG["wcl_geo_tracking"]) && !(!isnull(getCookieValue("geo_data")) && getCookieValue("geo_data") > time() - 2592000)), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--alert_html-->", base64_encode(str_replace("<!--server-->", LIVEZILLA_URL, getFile(TEMPLATE_SCRIPT_ALERT))), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--user_name-->", getParam(GET_EXTERN_USER_NAME), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--user_email-->", getParam(GET_EXTERN_USER_EMAIL), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--user_company-->", getParam(GET_EXTERN_USER_COMPANY), $TRACKINGSCRIPT);
    $TRACKINGSCRIPT = str_replace("<!--user_header-->", getParam(GET_EXTERN_USER_HEADER), $TRACKINGSCRIPT);
    if (isset($_GET[GET_EXTERN_USER_EMAIL])) {
        setCookieValue("login_email", secPrev(base64UrlDecode($_GET[GET_EXTERN_USER_EMAIL])));
    }
    if (isset($_GET[GET_EXTERN_USER_COMPANY])) {
        setCookieValue("login_company", secPrev(base64UrlDecode($_GET[GET_EXTERN_USER_COMPANY])));
    }
    if (isset($_GET[GET_EXTERN_USER_NAME])) {
        setCookieValue("login_name", secPrev(base64UrlDecode($_GET[GET_EXTERN_USER_NAME])));
    }
} else {
Esempio n. 12
0
function processResource($_userId, $_resId, $_value, $_type, $_title, $_disc, $_parentId, $_rank, $_size = 0)
{
    if ($_size == 0) {
        $_size = strlen($_title);
    }
    $result = queryDB(true, "SELECT `id` FROM `" . DB_PREFIX . DATABASE_RESOURCES . "` WHERE `id`='" . mysql_real_escape_string($_resId) . "'");
    if (mysql_num_rows($result) == 0) {
        queryDB(true, $result = "INSERT INTO `" . DB_PREFIX . DATABASE_RESOURCES . "` (`id`,`owner`,`editor`,`value`,`edited`,`title`,`created`,`type`,`discarded`,`parentid`,`rank`,`size`) VALUES ('" . mysql_real_escape_string($_resId) . "','" . mysql_real_escape_string($_userId) . "','" . mysql_real_escape_string($_userId) . "','" . mysql_real_escape_string($_value) . "','" . mysql_real_escape_string(time()) . "','" . mysql_real_escape_string($_title) . "','" . mysql_real_escape_string(time()) . "','" . mysql_real_escape_string($_type) . "','0','" . mysql_real_escape_string($_parentId) . "','" . mysql_real_escape_string($_rank) . "','" . mysql_real_escape_string($_size) . "')");
    } else {
        queryDB(true, $result = "UPDATE `" . DB_PREFIX . DATABASE_RESOURCES . "` SET `value`='" . mysql_real_escape_string($_value) . "',`editor`='" . mysql_real_escape_string($_userId) . "',`title`='" . mysql_real_escape_string($_title) . "',`edited`='" . mysql_real_escape_string(time()) . "',`discarded`='" . mysql_real_escape_string(parseBool($_disc, false)) . "',`parentid`='" . mysql_real_escape_string($_parentId) . "',`rank`='" . mysql_real_escape_string($_rank) . "',`size`='" . mysql_real_escape_string($_size) . "' WHERE id='" . mysql_real_escape_string($_resId) . "' LIMIT 1");
    }
}
Esempio n. 13
0
 public function parse($xml, $edit = false)
 {
     global $XML_VERSION;
     $root = simplexml_load_string($xml);
     foreach ($root->attrubutes as $name => $val) {
         if ($name == 'version') {
             $ecv = doubleval($val);
             if ($ecv <= $XML_VERSION) {
                 $this->ecml_version = $ecv;
             } else {
                 throw new Exception(sprintf('This version of the server will only handle XML version %s or earlier.', $XML_VERSION));
             }
         }
     }
     $model = $root->model[0];
     if ($model->uploadToLocalServer) {
         $this->uploadToLocalServer = (string) $model->uploadToLocalServer[0];
     }
     if ($model->downloadFromLocalServer) {
         $this->downloadFromLocalServer = (string) $model->downloadFromLocalServer[0];
     }
     $adeIsSet = false;
     foreach ($model->submission[0]->attributes() as $name => $val) {
         switch ($name) {
             case "id":
                 $this->submission_id = (string) $val;
                 break;
             case "projectName":
                 $this->name = (string) $val;
                 break;
             case "allowDownloadEdits":
                 try {
                     $this->allowDownloadEdits = parseBool((string) $val);
                     $adeIsSet = true;
                 } catch (Exception $e) {
                     throw new InvalidArgumentException("allowDownloadEdits must be true or false");
                 }
                 break;
             case "versionNumber":
                 $this->versionNumber = (string) $val;
                 break;
         }
     }
     if (!$this->submission_id || $this->submission_id == '_' || $this->submission_id == '') {
         $this->submission_id = strtolower($this->name);
     }
     if (!$adeIsSet) {
         throw new Exception("allowDownloadEdits must be set for every project.");
     }
     //check the version of the xml (version 1 does not contain table tags)
     if ($root->description) {
         $this->description = (string) $root->description[0];
     }
     //Clear table array to prevent discrepancy
     $this->tables = array();
     if ($root->form) {
         $this->ecVersionNumber = "3";
         for ($t = 0; $t < count($root->form); $t++) {
             $atts = $root->form[$t]->attributes();
             if (!array_key_exists((string) $atts['name'], $this->tables)) {
                 $tbl = new EcTable($this);
             } elseif ($this->tables[(string) $atts['name']]->id) {
                 $oldTbl = $this->tables[(string) $atts['name']];
                 //unset($this->tables[(string)$atts['name']]);
                 $tbl = new EcTable($this);
                 $tbl->id = $oldTbl->id;
                 foreach ($oldTbl->fields as $name => $fld) {
                     $tbl->fields[$name] = new EcField();
                     $tbl->fields[$name]->idField = $fld->idField;
                 }
                 unset($oldTbl);
             } else {
                 throw new Exception("Table names must be unique. More that one table called " . (string) $atts['name'] . " in {$this->name}");
                 //$tbl = $this->tables[(string)$atts['name']];
             }
             $tbl->parse($root->form[$t]);
             $this->tables[$tbl->name] = $tbl;
         }
     } elseif ($root->table) {
         //parse version 2 tables
         $this->ecVersionNumber = "2";
         if ($model->uploadToLocalServer) {
             $this->uploadToLocalServer = (string) $model->uploadToLocalServer[0];
         }
         for ($t = 0; $t < count($root->table); $t++) {
             if (!array_key_exists((string) $root->table[$t]->name, $this->tables) || $this->tables[(string) $root->table[$t]->name]->id) {
                 $tbl = new EcTable($this);
             } else {
                 throw new Exception("Table names must be unique. More that one table called " . (string) $root->table[$t]->name . "in {$this->name}");
                 //$tbl = $this->tables[(string)$atts['name']];
             }
             $tbl->parse($root->table[$t]);
             $tbl->version = $this->versionNumber;
             $this->tables[$tbl->name] = $tbl;
         }
     } else {
         //parse version 1 table
         $this->ecVersionNumber = "1";
         $tbl = new EcTable($this);
         $tbl->parse($root);
         $tbl->projectName = $this->name;
         $this->tables[$this->name] = $tbl;
         foreach ($tbl->fields as $fld) {
             if ($fld->title) {
                 $this->tables[$this->name]->key = $fld->name;
                 break;
             }
         }
     }
     $this->uploadToServer = (string) $model->uploadToServer[0];
     foreach ($this->tables as $t) {
         if (!$t->isMain) {
             continue;
         }
         $tn = $this->getNextTable($t->name, true);
         if ($tn && !array_key_exists($t->key, $tn->fields)) {
             $f = new EcField();
             $f->name = $t->fields[$t->key]->name;
             $f->label = $t->fields[$t->key]->label;
             $f->form = $tn;
             $f->type = 'input';
             $f->fkTable = $t->name;
             $f->fkField = $t->key;
             $tn->fields[$f->name] = $f;
         }
     }
 }
Esempio n. 14
0
 $TRACKINGSCRIPT = str_replace("<!--is_ovlpos-->", parseBool($detector->BrowserName != "Internet Explorer" || $detector->BrowserVersion > 6), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--is_ovlc-->", parseBool(!empty($_GET["ovlc"])), $TRACKINGSCRIPT);
 if (!empty($_GET["ovlc"]) && strlen(base64UrlDecode($_GET["ovlc"])) == 7) {
     $TRACKINGSCRIPT .= getFile(TEMPLATE_SCRIPT_OVERLAY_CHAT);
     $TRACKINGSCRIPT = str_replace("<!--def_trans_into-->", $CONFIG["gl_default_language"], $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--header_offline-->", base64UrlEncode(htmlentities(getOParam("ovlto", "Leave a message"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--header_online-->", base64UrlEncode(htmlentities(getOParam("ovlt", "Chat with us"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
     $color = getBrightness(base64UrlDecode($_GET["ovlc"])) > getBrightness(base64UrlDecode($_GET["ovlct"])) ? $_GET["ovlct"] : $_GET["ovlc"];
     $TRACKINGSCRIPT = str_replace("<!--color-->", hexDarker(str_replace("#", "", base64UrlDecode($color)), 30), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--tickets_external-->", parseBool($openTicketExternal), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--chats_external-->", parseBool($openChatExternal), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--offline_message_mode-->", $CONFIG["gl_om_mode"], $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--offline_message_http-->", $CONFIG["gl_om_http"], $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--post_html-->", base64_encode(str_replace("<!--color-->", "#000000", getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_EXTERN))), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--add_html-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_ADD)), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--offline_message_pop-->", parseBool(!empty($CONFIG["gl_om_pop_up"])), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--ec_t-->", $eca = getOParam("eca", 0, $nu, FILTER_VALIDATE_INT), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--gtv2_api_key-->", strlen($CONFIG["gl_otrs"]) > 1 ? base64_encode($CONFIG["gl_otrs"]) : "", $TRACKINGSCRIPT);
     if ($eca == 1) {
         $TRACKINGSCRIPT = str_replace("<!--ec_header_text-->", base64UrlEncode(htmlentities(getOParam("echt", "Have questions?"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
         $TRACKINGSCRIPT = str_replace("<!--ec_header_sub_text-->", base64UrlEncode(htmlentities(getOParam("echst", "Chat with us live"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
         $TRACKINGSCRIPT = str_replace("<!--ec_o_header_text-->", base64UrlEncode(htmlentities(getOParam("ecoht", "Have questions?"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
         $TRACKINGSCRIPT = str_replace("<!--ec_o_header_sub_text-->", base64UrlEncode(htmlentities(getOParam("ecohst", "Please leave a message"), ENT_QUOTES, "UTF-8")), $TRACKINGSCRIPT);
     } else {
         if ($eca == 2) {
             $TRACKINGSCRIPT = str_replace("<!--ec_image-->", base64UrlEncode(getOParam("eci", "", $nu, FILTER_SANITIZE_URL)), $TRACKINGSCRIPT);
             $TRACKINGSCRIPT = str_replace("<!--ec_o_image-->", base64UrlEncode(getOParam("ecio", "", $nu, FILTER_SANITIZE_URL)), $TRACKINGSCRIPT);
         }
     }
     $ov = VisitorChat::FromCache($EXTERNALUSER->UserId, $EXTERNALUSER->UserId . "_OVL");
     if (!empty($ov->Fullname)) {
Esempio n. 15
0
 $TRACKINGSCRIPT = str_replace("<!--user_id-->", htmlentities($EXTERNALUSER->UserId, ENT_QUOTES, "UTF-8"), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--connection_error_span-->", CONNECTION_ERROR_SPAN, $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--poll_frequency-->", getPollFrequency(), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--height-->", $CONFIG["wcl_window_height"], $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--width-->", $CONFIG["wcl_window_width"], $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = geoReplacements($TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--geo_resolute-->", parseBool(!isSSpanFile() && $EXTERNALUSER->FirstCall && !empty($CONFIG["gl_pr_ngl"]) && !(!isnull(getCookieValue("geo_data")) && getCookieValue("geo_data") > time() - 2592000)), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--alert_html-->", base64_encode(getAlertTemplate()), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_name-->", $fullname, $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_email-->", $email, $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_company-->", $company, $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_question-->", getParam(GET_EXTERN_USER_QUESTION), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_header-->", getParam(GET_EXTERN_USER_HEADER), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--user_customs-->", getJSCustomArray("", $customs), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--custom_params-->", getCustomParams("", $customs), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--is_ie-->", parseBool(!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false), $TRACKINGSCRIPT);
 if (isset($fullname)) {
     setCookieValue("form_111", cutString(base64UrlDecode($fullname), 254));
 }
 if (isset($_GET[GET_EXTERN_USER_EMAIL])) {
     setCookieValue("form_112", cutString(base64UrlDecode($_GET[GET_EXTERN_USER_EMAIL]), 254));
 }
 if (isset($_GET[GET_EXTERN_USER_COMPANY])) {
     setCookieValue("form_113", cutString(base64UrlDecode($_GET[GET_EXTERN_USER_COMPANY]), 254));
 }
 for ($i = 0; $i <= 9; $i++) {
     if (isset($_GET["cf" . $i]) && !empty($_GET["cf" . $i])) {
         setCookieValue("cf_" . $i, cutString(base64UrlDecode($_GET["cf" . $i]), 254));
     }
 }
 if (!empty($_GET["fbpos"]) && is_numeric($_GET["fbpos"]) && !empty($_GET["fbw"]) && is_numeric($_GET["fbw"]) && !empty($_GET["fbh"]) && is_numeric($_GET["fbh"])) {
 function GetJavascript($_value)
 {
     return "new lz_chat_input(" . $this->Index . "," . parseBool($this->Active) . ",'" . base64_encode($this->Caption) . "','" . base64_encode($this->InfoText) . "','" . base64_encode($this->Name) . "','" . $this->Type . "','" . base64_encode($this->GetPreselectionValue($_value)) . "'," . parseBool($this->Validate) . ",'" . base64_encode($this->ValidationURL) . "'," . $this->ValidationTimeout . "," . parseBool($this->ValidationContinueOnTimeout) . ")";
 }
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 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;
}
Esempio n. 19
0
 $TRACKINGSCRIPT = str_replace("<!--chats_external-->", parseBool($openChatExternal), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--offline_message_mode-->", $CONFIG["gl_om_mode"], $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--offline_message_http-->", $CONFIG["gl_om_http"], $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--post_html-->", base64_encode(str_replace("<!--color-->", "#000000", str_replace("<!--lang_client_edit-->", strtoupper($LZLANG["client_edit"]), getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_EXTERN)))), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--add_html-->", base64_encode(getFile(TEMPLATE_HTML_MESSAGE_OVERLAY_CHAT_ADD)), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--offline_message_pop-->", parseBool(!empty($CONFIG["gl_om_pop_up"])), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--ec_t-->", $eca = getOParam("eca", 0, $nu, FILTER_VALIDATE_INT), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--gtv2_api_key-->", strlen($CONFIG["gl_otrs"]) > 1 ? base64_encode($CONFIG["gl_otrs"]) : "", $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--shadow-->", parseBool(!empty($_GET["ovlsc"])), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--shadowx-->", getOParam("ovlsx", 0, $nu, FILTER_SANITIZE_NUMBER_INT), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--shadowy-->", getOParam("ovlsy", 0, $nu, FILTER_SANITIZE_NUMBER_INT), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--shadowb-->", getOParam("ovlsb", 0, $nu, FILTER_SANITIZE_NUMBER_INT), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--shadowc-->", getOParam("ovlsc", 0, $nu, FILTER_SANITIZE_SPECIAL_CHARS), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--hide_group_select_chat-->", parseBool(getOParam("hcgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--hide_group_select_ticket-->", parseBool(getOParam("htgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $TRACKINGSCRIPT);
 $TRACKINGSCRIPT = str_replace("<!--require_group_selection-->", parseBool(getOParam("rgs", 0, $nu, FILTER_VALIDATE_INT) == "1"), $TRACKINGSCRIPT);
 if ($eca == 1) {
     $TRACKINGSCRIPT = str_replace("<!--ec_header_text-->", base64UrlEncode(getOParam("echt", "Have questions?", $c, FILTER_HTML_ENTITIES)), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--ec_header_sub_text-->", base64UrlEncode(getOParam("echst", "Chat with us live", $c, FILTER_HTML_ENTITIES)), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--ec_o_header_text-->", base64UrlEncode(getOParam("ecoht", "Have questions?", $c, FILTER_HTML_ENTITIES)), $TRACKINGSCRIPT);
     $TRACKINGSCRIPT = str_replace("<!--ec_o_header_sub_text-->", base64UrlEncode(getOParam("ecohst", "Please leave a message", $c, FILTER_HTML_ENTITIES)), $TRACKINGSCRIPT);
 } else {
     if ($eca == 2) {
         $TRACKINGSCRIPT = str_replace("<!--ec_image-->", base64UrlEncode(getOParam("eci", "", $nu, FILTER_SANITIZE_URL)), $TRACKINGSCRIPT);
         $TRACKINGSCRIPT = str_replace("<!--ec_o_image-->", base64UrlEncode(getOParam("ecio", "", $nu, FILTER_SANITIZE_URL)), $TRACKINGSCRIPT);
     }
 }
 $ov = VisitorChat::FromCache($EXTERNALUSER->UserId, $EXTERNALUSER->UserId . "_OVL");
 if (!empty($ov->Fullname)) {
     $fullname = base64UrlEncode($ov->Fullname);
 }
Esempio n. 20
0
 public function parse($xml)
 {
     $this->type = (string) $xml->getName();
     foreach ($xml->attributes() as $name => $val) {
         switch ($name) {
             case 'ref':
                 $this->name = (string) $val;
                 break;
             case 'name':
                 $this->name = (string) $val;
                 break;
             case 'required':
                 $this->required = parseBool((string) $val);
                 break;
             case 'title':
                 $this->title = parseBool((string) $val);
                 break;
             case 'jump':
                 $this->jump = (string) $val;
                 break;
             case 'integer':
                 $this->isInt = parseBool((string) $val);
                 break;
             case 'decimal':
                 $this->isDouble = parseBool((string) $val);
                 break;
             case 'regex':
                 $rx = (string) $val;
                 try {
                     preg_match("/{$rx}/", "");
                 } catch (Exception $e) {
                     throw new Exception("The regex argument for the field {$this->name} in the form {$this->form->name} is not valud");
                 }
                 $this->regex = $rx;
                 break;
             case 'verify':
                 $this->doubleEntry = parseBool((string) $val);
                 break;
             case 'search':
                 $this->search = parseBool((string) $val);
                 break;
             case 'group_num':
                 $this->group_form = (string) $val;
                 break;
             case 'branch_form':
                 $this->branch_form = (string) $val;
                 break;
             case 'display':
                 $this->display = parseBool((string) $val);
                 break;
             case 'genkey':
                 $this->genkey = parseBool((string) $val);
                 break;
             case 'uppercase':
                 $this->upperCase = parseBool((string) $val);
                 break;
             case 'date':
                 $this->date = (string) $val;
                 break;
             case 'time':
                 $this->time = (string) $val;
                 break;
             case 'setdate':
                 $this->setDate = (string) $val;
                 break;
             case 'settime':
                 $this->setTime = (string) $val;
                 break;
             case 'edit':
                 $this->edit = parseBool((string) $val);
                 break;
             case 'min':
                 $this->min = (string) $val;
                 break;
             case 'max':
                 $this->max = (string) $val;
                 break;
             case 'match':
                 $this->match = (string) $val;
                 break;
             case 'crumb':
                 $this->crumb = (string) $val;
                 break;
             case 'default':
                 $this->defaultValue = (string) $val;
                 break;
             default:
                 $this->otherAttributes[$name] = (string) $val;
                 break;
         }
         //end switch
     }
     //end foreach
     $this->options = array();
     foreach ($xml->children() as $opt) {
         $oIdx = count($this->options);
         if ($opt->getName() == 'label') {
             $this->label = html_entity_decode((string) $opt);
         } else {
             if ($opt->getName() == 'item') {
                 $this->options[$oIdx] = new EcOption();
                 $this->options[$oIdx]->label = html_entity_decode((string) $opt->label[0]);
                 $this->options[$oIdx]->value = (string) $opt->value[0];
                 $this->options[$oIdx]->idx = $oIdx;
                 if ($this->options[$oIdx]->label == '') {
                     throw new Exception(sprintf('Option number %d for the field %s has no label, the label cannot be empty', $oIdx, $this->label));
                 }
                 if ($this->options[$oIdx]->value == '') {
                     throw new Exception(sprintf('Option number %d for the field %s has no value, the value cannot be empty', $oIdx, $this->name));
                 }
                 $oIdx++;
             }
         }
     }
     //check that only one of isInt, isDouble, date, time, setdate, settime, regex or match is set
     $vcheck = 0;
     $vlist = "";
     //PHP var => xml attribute
     $vtype = array("isInt" => "integer", "isDouble" => "decimal", "date" => "date", "time" => "time", "setDate" => "setdate", "setTime" => "settime", "regex" => "regex", "match" => "match");
     foreach ($vtype as $var => $att) {
         if ($this->{$var} && $this->{$var} != "") {
             if ($vlist != "") {
                 $vlist = "{$vlist},";
             }
             $vcheck++;
             $vlist = "{$vlist} {$att}";
         }
     }
     if ($vcheck > 1) {
         //echo $xml->asXML();
         if ($vcheck == 2 && $vlist == " regex, match") {
         } else {
             throw new Exception("{$vlist} are all set on the field {$this->name} only one of these attributes may be set at once.");
         }
     }
     //check that min and max are only set for numerics
     if (($this->min || $this->max) && !($this->isInt || $this->isDouble)) {
         throw new Exception("Error with {$this->name}: the min and max attributes should only be set on integer or decimal fields");
     }
     if ($this->isInt && (!preg_match("/^-?[0-9]*\$/", $this->min) || !preg_match("/^-?[0-9]*\$/", $this->max))) {
         throw new Exception("Error with {$this->name}: the field is set as an integer, therefore min and max must both be integers");
     }
     if ($this->isDouble && (!preg_match("/^-?[0-9]*(\\.\\d*)?\$/", $this->min) || !preg_match("/^-?[0-9]*(\\.\\d*)?\$/", $this->max))) {
         throw new Exception("Error with {$this->name}: the field is set as an decimal, therefore min and max must both be decimal numbers");
     }
     if ($this->min && $this->max && doubleval($this->min) >= doubleval($this->max)) {
         throw new Exception("Error with {$this->name}: min must be less than max");
     }
     //only need to use double val as it will work with ints as well.
     //check that default complies to the perscribed conditions above
     if (isset($this->defaultValue)) {
         switch ($vlist) {
             case "integer":
                 if (!preg_match("/^[0-9]+\$/", $this->defaultValue)) {
                     throw new Exception("The field {$this->name} is an integer therefore the default value must be an integer");
                 }
                 $d = intval($this->defaultValue, 10);
                 if ($d > intval($this->max, 10) || $d < intval($this->min, 10)) {
                     throw new Exception("A min and/or max has been specified by {$this->name}, the default value must fall within or be equal to these numbers.");
                 }
                 break;
             case "decimal":
                 if (!preg_match("/^[0-9]+\$/", $this->defaultValue)) {
                     throw new Exception("The field {$this->name} is an integer therefore the default value must be an integer");
                 }
                 $d = doubleval($this->defaultValue, 10);
                 if ($d > doubleval($this->max, 10) || $d < doubleval($this->min, 10)) {
                     throw new Exception("A min and/or max has been specified by {$this->name}, the default value must fall within or be equal to these numbers.");
                 }
                 break;
             case "date":
                 try {
                     date_create_from_format($this->dtConvert($this->date), $this->defaultValue);
                 } catch (Exception $e) {
                     throw new Exception("The field {$this->name} has a default that confilicts with its date attribute.");
                 }
             case "setdate":
                 throw new Exception("The field {$this->name} has setdate and default attributes set, setdate implies a default of the current date and so default is not valid. If you wish to set a default please use date.");
             case "time":
                 try {
                     date_create_from_format($this->dtConvert($this->time), $this->defaultValue);
                 } catch (Exception $e) {
                     throw new Exception("The field {$this->name} has a default that confilicts with its time attribute.");
                 }
             case "settime":
                 throw new Exception("The field {$this->name} has settime and default attributes set, settime implies a default of the current date and so default is not valid. If you wish to set a default please use time.");
             case "regex":
                 if (!preg_match($this->regex, $this->defaultValue)) {
                     throw new Exception("The field {$this->name} has a default that does not comply with it's regex attribute.`");
                 }
             default:
                 break;
                 // should only be reached if there are no validation rules
         }
     }
 }