$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); } } }
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"]); } } }
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; }
$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)) {
$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");
$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);
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 {
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"); } }
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; } } }
$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)) {
$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; }
$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); }
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 } } }