function fieldencode($s) { if (is_array($s)) { $ret_val = ''; foreach ($s as $v) { $ret_val .= ($ret_val != '' ? ', ' : '') . CEvent::fieldencode($v); } } else { $ret_val = str_replace("%", "%2", $s); $ret_val = str_replace("&", "%1", $ret_val); $ret_val = str_replace("=", "%3", $ret_val); } return $ret_val; }
function Send($event, $lid, $arFields, $Duplicate = "Y", $message_id = "") { $err_mess = CEvent::err_mess() . "<br>Function: Send<br>Line: "; global $DB; $sqlFields = ""; if (is_array($arFields) && count($arFields) > 0) { $keys = array_keys($arFields); for ($i = 0; $i < count($keys); $i++) { $sqlFields .= "&" . CEvent::fieldencode($keys[$i]) . "=" . CEvent::fieldencode($arFields[$keys[$i]]); } if (strlen($sqlFields) > 0) { $sqlFields = substr($sqlFields, 1); } } if (is_array($lid)) { $lid = implode(",", $lid); } $arFields = array("EVENT_NAME" => "'" . $DB->ForSQL($event) . "'", "LID" => "'" . $DB->ForSql($lid, 201) . "'", "MESSAGE_ID" => intval($message_id) <= 0 ? "null" : intval($message_id), "C_FIELDS" => "'" . $DB->ForSQL($sqlFields) . "'", "DATE_INSERT" => "getdate()", "DUPLICATE" => $Duplicate != "N" ? "'Y'" : "'N'"); if (CACHED_b_event !== false) { @unlink($_SERVER["DOCUMENT_ROOT"] . "/" . BX_ROOT . "/managed_cache/" . $DB->type . "/b_event"); } return $DB->Insert("b_event", $arFields, $err_mess . __LINE__); }