/** * @param int $level Record level. * @param string $type Record type. * @param string $itemId Identifier of record object. * @param string $description Record description. * @return bool * @throws \Bitrix\Main\SystemException */ public function addRecord($level, $type, $itemId, $description) { if ($this->logLevel < $level || $level == static::LOG_LEVEL_DISABLE) { return false; } if (!array_key_exists($level, $this->severities)) { throw new SystemException("Unknown type of severity: " . $level . ". " . __METHOD__); } $eventLog = new \CEventLog(); return $eventLog->Add(array("SEVERITY" => $this->severities[$level], "AUDIT_TYPE_ID" => $type, "MODULE_ID" => "sale", "ITEM_ID" => $itemId, "DESCRIPTION" => $description)); }
/** * @param mixed $data * @param bool | string | false $die * @param string $msg * * @return null */ public static function dbg2EventLog($data, $die = false, $msg = 'DEBUG') { if (!is_bool($die)) { $msg = $die; $die = false; } $sDebug = self::_debugmessage($data); $oEventLog = new \CEventLog(); $oEventLog->Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "DEBUG_MESSAGE", "MODULE_ID" => "DEBUG", "ITEM_ID" => $msg, "DESCRIPTION" => $sDebug)); if ($die && self::isValidIP()) { die; } }
/** * @param $level * @param $auditType * @param $itemId * @param $description * @return bool */ public static function addRecord($level, $auditType, $itemId, $description) { if ($level == self::LOG_LEVEL_ERROR) { $severity = "ERROR"; } elseif ($level == self::LOG_LEVEL_INFO) { $severity = "INFO"; } elseif ($level == self::LOG_LEVEL_DEBUG) { $severity = "DEBUG"; } else { $severity = "UNKNOWN"; } \CEventLog::Add(array("SEVERITY" => $severity, "AUDIT_TYPE_ID" => $auditType, "MODULE_ID" => "scale", "ITEM_ID" => $itemId, "DESCRIPTION" => $description)); return true; }
function Request($server, $page, $port, $params, $uri = false) { if ($uri && strlen($uri) > 0) { $strURI = $uri; } else { $strURI = "http://" . $server . (strlen($port) > 0 && intval($port) > 0 ? ":" . intval($port) : "") . (strlen($page) ? $page : "/") . (strlen($params) > 0 ? "?" . $params : ""); } $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.0", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5)); $strData = $http->get($strURI); $errors = $http->getError(); $arRSSResult = array(); if (!$strData && !empty($errors)) { $strError = ""; foreach ($errors as $errorCode => $errMes) { $strError .= $errorCode . ": " . $errMes; } \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "XDIMPORT_HTTP", "MODULE_ID" => "xdimport", "ITEM_ID" => "RSS_REQUEST", "DESCRIPTION" => $strError)); } if ($strData) { $rss_charset = "windows-1251"; if (preg_match("/<" . "\\?XML[^>]{1,}encoding=[\"']([^>\"']{1,})[\"'][^>]{0,}\\?" . ">/i", $strData, $matches)) { $rss_charset = Trim($matches[1]); } $strData = preg_replace("/<" . "\\?XML.*?\\?" . ">/i", "", $strData); $strData = $GLOBALS["APPLICATION"]->ConvertCharset($strData, $rss_charset, SITE_CHARSET); } if (strlen($strData) > 0) { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/xml.php"; $objXML = new CDataXML(); $res = $objXML->LoadString($strData); if ($res !== false) { $ar = $objXML->GetArray(); if (is_array($ar) && isset($ar["rss"]) && is_array($ar["rss"]) && isset($ar["rss"]["#"]) && is_array($ar["rss"]["#"]) && isset($ar["rss"]["#"]["channel"]) && is_array($ar["rss"]["#"]["channel"]) && isset($ar["rss"]["#"]["channel"][0]) && is_array($ar["rss"]["#"]["channel"][0]) && isset($ar["rss"]["#"]["channel"][0]["#"])) { $arRSSResult = $ar["rss"]["#"]["channel"][0]["#"]; } else { $arRSSResult = array(); } $arRSSResult["rss_charset"] = strtolower(SITE_CHARSET); } } if (is_array($arRSSResult) && !empty($arRSSResult)) { $arRSSResult = CXDILFSchemeRSS::FormatArray($arRSSResult); if (!empty($arRSSResult) && array_key_exists("item", $arRSSResult) && is_array($arRSSResult["item"]) && !empty($arRSSResult["item"])) { $arRSSResult["item"] = array_reverse($arRSSResult["item"]); } } return $arRSSResult; }
function RaiseErrorAndDie($strError, $errCode = 0, $ITEM_ID = '') { global $DB; if (CLI) echo 'Error ['.$errCode.']: '.str_replace('<br>',"\n",$strError)."\n"; else { echo "ERROR_".$errCode."\n".htmlspecialcharsbx($strError)."\n"; } if (is_object($DB)) { $DB->DoConnect(); CEventLog::Add(array( "SEVERITY" => "WARNING", "AUDIT_TYPE_ID" => "BACKUP_ERROR", "MODULE_ID" => "main", "ITEM_ID" => $ITEM_ID, "DESCRIPTION" => "[".$errCode."] ".$strError, )); } die(); }
/** * * w+ event in bitrix log */ public static function eventLog($auditType, $itemId, $description) { CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => $auditType, "MODULE_ID" => self::$MODULE_ID, "ITEM_ID" => $itemId, "DESCRIPTION" => $description)); }
protected static function send($strParams) { $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5)); $jsnData = $http->post("http://www.pecom.ru/bitrix/components/pecom/calc/ajax.php", $strParams); $errors = $http->getError(); if (!$jsnData && !empty($errors)) { $strError = ""; foreach ($errors as $errorCode => $errMes) { $strError .= $errorCode . ": " . $errMes; } \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_DELIVERY", "MODULE_ID" => "sale", "ITEM_ID" => "PECOM_CALCULATOR_SEND", "DESCRIPTION" => $strError)); } return $jsnData; }
function Get_StatGA() { $u = COption::GetOptionString('statga', 'ga_login'); $p = COption::GetOptionString('statga', 'ga_password'); $id = COption::GetOptionString('statga', 'ga_id'); //дата, начиная с которой необходимо получить данные из GA для отчета. Формат YYYY-MM-DD //берем дату год назад $datestart = mktime(0, 0, 0, date("m"), date("d"), date("Y") - 1); //текущая дата $currentdate = date("Ymd"); //дата, заканчивая которой //$datefinish=""; //или вычисляем дату - конец предыдущего месяца $currentday = date("d"); $currentmonth = date("m"); $currentyear = date("Y"); $datefinish = date("Y-m-d"); //дата 3 месяца назад $date3MonthStart = date("Y-m-d", mktime(0, 0, 0, $currentmonth - 3, $currentday - 1, $currentyear)); $date3MonthFinish = date("Y-m-d", mktime(0, 0, 0, $currentmonth, $currentday - 1, $currentyear)); //дата месяц назад $date1MonthStart = date("Y-m-d", mktime(0, 0, 0, $currentmonth - 1, $currentday - 1, $currentyear)); $date1MonthFinish = date("Y-m-d", mktime(0, 0, 0, $currentmonth, $currentday - 1, $currentyear)); //количество стран $countryRows = 3; //количество городов $cityRows = 10; //csv-файл для отчета Посетители $visitorsCSV = "visitors.csv"; //csv-файл для отчета Посетители за посл. 3 месяца $visitors3CSV = "visitors_3.csv"; //csv-файл для отчета География по странам $countryCSV = "country.csv"; //csv-файл для отчета География по городам $cityCSV = "city.csv"; //полный пусть к директории со скриптом (слэш в конце обязателен!) $path = dirname(__FILE__) . "/../../../cache/" . SITE_ID . "/statga/"; try { $ga = new gapi($u, $p); //получаем пользователи/просмотры за все время $ga->requestReportData($id, array('month', 'year'), array('visitors', 'pageviews'), 'year', null, $datestart, $datefinish, 1, 1000); //получаем и обрабатываем результаты foreach ($ga->getResults() as $result) { $m = $result; //месяц год $visitors = $result->getVisitors(); //посетители $pageviews = $result->getPageviews(); //просмотры //приводим дату к удобочитаемому виду ,мменяем пробелы на точки $m = str_replace(" ", ".", $m); //формируем строку $output .= $m . ";" . $visitors . ";" . $pageviews . "\n"; } //пишем в файл self::writeToFile($path . $visitorsCSV, $output); //получаем пользователи/просмотры/посещения за последние 3 месяца $ga->requestReportData($id, array('day', 'month', 'year'), array('visitors', 'visits', 'pageviews'), array('year', 'month'), null, $date3MonthStart, $date3MonthFinish, 1, 1000); //переменная для записи резалта $output = ""; //получаем и обрабатываем результаты foreach ($ga->getResults() as $result) { $d = $result; //день $visitors = $result->getVisitors(); //посетители $pageviews = $result->getPageviews(); //просмотры $visits = $result->getVisits(); //посещения //приводим дату к удобочитаемому виду ,мменяем пробелы на точки $d = str_replace(" ", ".", $d); //формируем строку $output .= $d . ";" . $visitors . ";" . $pageviews . ";" . $visits . "\n"; } //пишем в файл self::writeToFile($path . $visitors3CSV, $output); //получаем географию посещений за последний месяц $ga->requestReportData($id, array('country'), array('visits'), '-visits', null, $date1MonthStart, $date1MonthFinish, 1, $countryRows); //переменная для записи резалта $output = ""; //получаем общее число посещений для всех стран $total_visits = $ga->getVisits(); //получаем и обрабатываем результаты foreach ($ga->getResults() as $result) { $country = $result->getCountry(); //страна $visits = $result->getVisits(); //кол-во посещений //нот сет переводим на русский $country = str_replace("(not set)", "не определено", $country); //формируем строку $output .= $country . ";" . $visits . "\n"; } //пишем в файл self::writeToFile($path . $countryCSV, $output); //////получаем ГОРОДА за последний месяц $ga->requestReportData($id, array('city'), array('visits'), '-visits', null, $date1MonthStart, $date1MonthFinish, 1, $cityRows); //переменная для записи резалта $output = ""; //получаем общее число посещений для всех стран $total_visits = $ga->getVisits(); //получаем и обрабатываем результаты foreach ($ga->getResults() as $result) { $city = $result->getCity(); //страна $visits = $result->getVisits(); //кол-во посещений //нот сет переводим на русский $city = str_replace("(not set)", "не определено", $city); //формируем строку $output .= $city . ";" . $visits . "\n"; } //пишем в файл self::writeToFile($path . $cityCSV, $output); } catch (Exception $e) { $SEVERITY = "WARNING"; $ERROR_TYPE = "STATGA_ERROR"; $MODULE_ID = "statga"; $ITEM_ID = "Get_StatGA"; $DESCRIPTION = $e->getMessage(); CEventLog::Add(array("SEVERITY" => $SEVERITY, "AUDIT_TYPE_ID" => $ERROR_TYPE, "MODULE_ID" => $MODULE_ID, "ITEM_ID" => $ITEM_ID, "DESCRIPTION" => $DESCRIPTION)); } return "statga::Get_StatGA();"; }
$logKPI::add(array('UF_USER' => IntVal($_REQUEST['UF_USER']), 'UF_AMPLIFIER' => $USER->GetID(), 'UF_EVENT' => $_REQUEST['UF_EVENT'] ? $_REQUEST['UF_EVENT'] : 0, 'UF_DATE_TIME' => date("Y-m-d H:i:s"), 'UF_ACTION_CODE' => 103, 'UF_ACTION_TEXT' => "change_status", 'UF_TYPE' => $arUserType[1][getUserType(IntVal($_REQUEST['UF_USER']))], 'UF_TYPE_2' => $arUserType[2][5])); if ($res) { getResultJSON(array("status" => "OK", "status_msg" => "put_photo_ok")); } else { getResultJSON(array("status" => "ERROR", "status_msg" => "put_photo_error")); } } /** Добавление события */ if ($_REQUEST["mode"] == "new_event") { if (!$USER->IsAuthorized()) { exit; } $json = json_decode(file_get_contents('php://input'), true); CEventLog::Add(array("SEVERITY" => "WARNING", "AUDIT_TYPE_ID" => "SEND_EVENT", "MODULE_ID" => "iblock", "ITEM_ID" => "", "DESCRIPTION" => json_encode($json))); if (!isValidJSON($json)) { exit; } foreach ($json as $key => $val) { $el = new CIBlockElement(); $PROP = array('CREATED_USER_ID' => $USER->GetID(), 'CLUB_NAME' => $val["CLUB_NAME"], 'OG_DESCRIPTION' => $val["OG_DESCRIPTION"], 'LINK' => $val["LINK"], 'PLACE_EVENT' => $val["PLACE_EVENT"], 'START_DATE' => ConvertTimeStamp(MakeTimeStamp($val["DATE_EVENT"], "DD.MM.YYYY HH:MI"), "FULL")); $arEvent = array("IBLOCK_ID" => 2, "PROPERTY_VALUES" => $PROP, "NAME" => $val["NAME"], "DATE_ACTIVE_FROM" => ConvertTimeStamp(MakeTimeStamp($val["DATE_EVENT"], "DD.MM.YYYY HH:MI"), "FULL")); $res = $el->Add($arEvent); if ($res) { getResultJSON(array("status" => "OK", "status_msg" => "new_event")); } else { getResultJSON(array("status" => "ERROR", "status_msg" => "new_event " . $el->LAST_ERROR)); } } }
/** * @return \Bitrix\Sale\Result * @throws Exception * @throws \Bitrix\Main\SystemException */ public static function convertToNew($renameTable = false) { $result = new \Bitrix\Sale\Result(); $con = \Bitrix\Main\Application::getConnection(); if (!$con->isTableExists("b_sale_delivery_handler")) { return $result; } $sqlHelper = $con->getSqlHelper(); $deliveryRes = $con->query('SELECT * FROM b_sale_delivery_handler WHERE CONVERTED != \'Y\''); $tablesToUpdate = array('b_sale_order', 'b_sale_order_history'); \CSaleDeliveryHandler::Initialize(); $handlers = \CSaleDeliveryHandler::__getRegisteredHandlers(); while ($delivery = $deliveryRes->fetch()) { if (strlen($delivery["HID"]) <= 0) { $result->addError(new \Bitrix\Main\Entity\EntityError("Can't find delivery HID. ID: \"" . $delivery["ID"] . "\"")); continue; } if (!isset($handlers[$delivery["HID"]])) { \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_CONVERTER_ERROR", "MODULE_ID" => "sale", "ITEM_ID" => "CAllSaleDeliveryHandler::convertToNew()", "DESCRIPTION" => "Can't find delivery handler for registered HID: \"" . $delivery["HID"] . "\"")); //$result->addError( new \Bitrix\Main\Entity\EntityError("Can't find delivery handler for registered HID: \"".$delivery["HID"]."\"")); continue; } if (strlen($delivery["PROFILES"]) > 0) { //get from base $delivery["PROFILES"] = unserialize($delivery["PROFILES"]); } else { //or default. $delivery["PROFILES"] = $handlers[$delivery["HID"]]["PROFILES"]; } // Something strange it probably not used if ($delivery["PROFILES"] == false || !is_array($delivery["PROFILES"]) || empty($delivery["PROFILES"])) { $result->addError(new \Bitrix\Main\Entity\EntityError("Can't receive info about profiles. Delivery HID: \"" . $delivery["HID"] . "\"")); continue; } //Set profiles activity foreach ($delivery["PROFILES"] as $id => $params) { if (!isset($delivery["PROFILES"][$id]["ACTIVE"]) || $delivery["ACTIVE"] == "N") { $delivery["PROFILES"][$id]["ACTIVE"] = $delivery["ACTIVE"]; } } unset($delivery["ID"]); $delivery["CONFIG"] = array(); if (strlen($delivery["SETTINGS"]) > 0) { if (isset($handlers[$delivery["HID"]]["DBGETSETTINGS"]) && is_callable($handlers[$delivery["HID"]]["DBGETSETTINGS"])) { $delivery["CONFIG"] = call_user_func($handlers[$delivery["HID"]]["DBGETSETTINGS"], $delivery["SETTINGS"]); } else { $delivery["CONFIG"] = $delivery["SETTINGS"]; } } elseif (isset($handlers[$delivery["HID"]]["GETCONFIG"]) && is_callable($handlers[$delivery["HID"]]["GETCONFIG"])) { $config = call_user_func($handlers[$delivery["HID"]]["GETCONFIG"], strlen($delivery["LID"]) > 0 ? $delivery["LID"] : false); foreach ($config["CONFIG"] as $key => $arConfig) { if (!empty($arConfig["DEFAULT"])) { $delivery["CONFIG"][$key] = $arConfig["DEFAULT"]; } } } if (empty($delivery["NAME"])) { if (!empty($handlers[$delivery["HID"]]["NAME"])) { $delivery["NAME"] = $handlers[$delivery["HID"]]["NAME"]; } else { $delivery["NAME"] = "-"; } } $delivery["SID"] = $handlers[$delivery["HID"]]["SID"]; $id = \CSaleDeliveryHandler::Set($delivery["HID"], $delivery, strlen($delivery["LID"]) > 0 ? $delivery["LID"] : false); if (intval($id) <= 0) { $result->addError(new \Bitrix\Main\Entity\EntityError("Can't convert delivery handler with hid: " . $delivery["HID"] . (strlen($delivery["LID"]) > 0 ? " for site: " . $delivery["LID"] : ""))); continue; } $con->queryExecute("UPDATE b_sale_delivery_handler SET CONVERTED='Y' WHERE HID LIKE '" . $sqlHelper->forSql($delivery["HID"]) . "'"); $ids = array($id); foreach ($delivery["PROFILES"] as $profileName => $profileData) { $fullSid = $delivery["HID"] . ":" . $profileName; $profileId = \CSaleDelivery::getIdByCode($fullSid); $ids[] = $profileId; if (intval($profileId) > 0) { foreach ($tablesToUpdate as $table) { $con->queryExecute("UPDATE " . $table . " SET DELIVERY_ID='" . $sqlHelper->forSql($profileId) . "' WHERE DELIVERY_ID = '" . $sqlHelper->forSql($fullSid) . "'"); } $con->queryExecute("UPDATE b_sale_delivery2paysystem SET DELIVERY_ID='" . $sqlHelper->forSql($profileId) . "', DELIVERY_PROFILE_ID='##CONVERTED##' WHERE DELIVERY_ID = '" . $sqlHelper->forSql($delivery["HID"]) . "' AND DELIVERY_PROFILE_ID='" . $profileName . "'"); } else { $result->addError(new \Bitrix\Main\Entity\EntityError("Cant determine id for profile code: " . $fullSid)); } } $con->queryExecute("UPDATE b_sale_delivery2paysystem SET DELIVERY_ID='" . $sqlHelper->forSql($id) . "', DELIVERY_PROFILE_ID='##CONVERTED##' WHERE DELIVERY_ID = '" . $sqlHelper->forSql($delivery["HID"]) . "' AND (DELIVERY_PROFILE_ID='' OR DELIVERY_PROFILE_ID IS NULL)"); $d2pRes = \Bitrix\Sale\Internals\DeliveryPaySystemTable::getList(array('filter' => array('DELIVERY_ID' => $ids), 'select' => array("DELIVERY_ID"), 'group' => array("DELIVERY_ID"))); while ($d2p = $d2pRes->fetch()) { $res = \Bitrix\Sale\Internals\ServiceRestrictionTable::add(array("SERVICE_ID" => $d2p["DELIVERY_ID"], "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByPaySystem', "SORT" => 100)); if (!$res->isSuccess()) { $result->addErrors($res->getErrors()); } } } if ($renameTable && $result->isSuccess()) { $con->renameTable('b_sale_delivery_handler', 'b_sale_delivery_handler_old'); } return $result; }
file_put_contents($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/sale_convert.txt', 'update b_sale_store_barcode = ' . ($end - $start) . "\n", FILE_APPEND); if (empty($error)) { $message = Loc::getMessage('SALE_CONVERTER_AJAX_STEP_UPDATE_ORDER_PAYMENT'); $result['NEXT_STEP'] = ++$ajax_step; } else { $message = Loc::getMessage('SALE_CONVERTER_AJAX_STEP_INSERT_SHIPMENT_BASKET_BARCODE'); $result['ERROR'] = true; $message .= "<br>" . $error; } $result['DATA'] = $message; break; case 20: $start = microtime(true); if (!$DB->Query("\n\t\t\t\t\tUPDATE \n\t\t\t\t\t\tb_sale_order \n\t\t\t\t\tSET\n\t\t\t\t\t\tb_sale_order.SUM_PAID = b_sale_order.PRICE \n\t\t\t\t\tWHERE b_sale_order.PAYED = 'Y'", true)) { $error .= "<br>" . $DB->GetErrorMessage(); \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_CONVERTER_ERROR", "MODULE_ID" => "sale", "ITEM_ID" => "-", "DESCRIPTION" => $error)); } $end = microtime(true); file_put_contents($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/sale_convert.txt', 'update b_sale_order = ' . ($end - $start) . "\n", FILE_APPEND); if (empty($error)) { $result['NEXT_STEP'] = ++$ajax_step; $message = Loc::getMessage('SALE_CONVERTER_AJAX_STEP_UPDATE_REPORT'); } else { $message = Loc::getMessage('SALE_CONVERTER_AJAX_STEP_UPDATE_ORDER_PAYMENT'); $result['ERROR'] = true; $message .= "<br>" . $error; } $result['DATA'] = $message; break; case 21: if ($DB->TableExists('b_report')) {
function FormationName(&$arFields) { if ( $arFields['IBLOCK_ID'] == 24 ){ // if iBLOCK_ID SK_CONTRACT try{ global $APPLICATION; $include_file = __DIR__ .'/../templates/work_copy/class/class_contract.php'; include_once ( $include_file ); $no_errors = IBlockContractHandler::OnBeforeIBlockElementAddHandler( $arFields ); if( is_array( $no_errors ) != true && $no_errors === true ){ return true; }else{ $APPLICATION->throwException( implode ("\n", $no_errors )); return false; } }catch( Exception $e ){ ob_start(); echo "\n ". __FILE__ ."\n"; print_r ( $e->getMessage() ); echo "\n "; $toLog = ob_get_contents(); ob_end_clean(); AddMessage2Log("$toLog", "my_module_id"); } }elseif( $arFields['IBLOCK_ID'] == 23 ){ try{ global $APPLICATION; $include_file = __DIR__ .'/../templates/work_copy/class/class_chassis.php'; include_once ( $include_file ); $no_errors = IBlockChassisHandler::OnBeforeIBlockElementAddHandler( $arFields ); if( is_array( $no_errors ) != true && $no_errors === true ){ return true; }else{ $APPLICATION->throwException( implode ("\n", $no_errors )); return false; } }catch( Exception $e ){ echo $e->getMessage(); } }elseif( $arFields['IBLOCK_ID'] == 22 ){ try{ global $APPLICATION; $include_file = __DIR__ .'/../templates/work_copy/class/class_client.php'; include_once ( $include_file ); $no_errors = IBlockClientHandler::OnBeforeIBlockElementAddHandler( $arFields ); if( is_array( $no_errors ) != true && $no_errors === true ){ return true; }else{ $APPLICATION->throwException( implode ("\n", $no_errors )); return false; } }catch( Exception $e ){ echo $e->getMessage(); } }elseif( $arFields['IBLOCK_ID'] == 6 ){ try{ global $USER; CModule::IncludeModule('iblock'); $dbEl = CIBlockElement::GetByID( $arFields["ID"] ); if( $obEl = $dbEl->GetNextElement() ){ $CurrentVal = $obEl->GetFields(); $CurrentVal["PROPERTIES"] = $obEl->GetProperties(); // ob_start(); // echo "\n ". __FILE__ ."\n"; // print_r ( $arFields ); // print_r ( $CurrentVal ); // echo "\n "; // $toLog = ob_get_contents(); // ob_end_clean(); // AddMessage2Log("$toLog", __METHOD__ . __LINE__); $log_mess = ""; $newService_code = $arFields["PROPERTY_VALUES"][106] [ $CurrentVal ["PROPERTIES"]["service_code"]["PROPERTY_VALUE_ID"] ]["VALUE"]; if( $CurrentVal ["PROPERTIES"]["service_code"]["VALUE"] !== $newService_code ){ $log_mess.= "Значение свойства «". $CurrentVal ["PROPERTIES"]["service_code"]["NAME"]."» изменено ".$CurrentVal["PROPERTIES"]["service_code"]["VALUE"]." => ".$newService_code." ;"; } $newService_price = $arFields["PROPERTY_VALUES"][107] [ $CurrentVal ["PROPERTIES"]["service_price"]["PROPERTY_VALUE_ID"] ]["VALUE"]; if( $CurrentVal ["PROPERTIES"]["service_price"]["VALUE"] !== $newService_price ){ $log_mess.= "Значение свойства «". $CurrentVal ["PROPERTIES"]["service_price"]["NAME"]."» изменено ".$CurrentVal["PROPERTIES"]["service_price"]["VALUE"]." => ".$newService_price." ;"; } if( $log_mess!="" ){ CEventLog::Add(array( "SEVERITY"=>"SECURITY", "AUDIT_TYPE_ID"=>"SERVICE_CALC_ITEM_PRICE_CHANGE", "MODULE_ID"=>"IBLOCK", "ITEM_ID"=>$arFields["ID"], "USER_ID"=>$USER->GetID(), "DESCRIPTION"=>"$log_mess", )); } }else{ throw new Exception("Элемент с ID: ".$arFields["ID"]." не найден."); } }catch( Exception $e ){ echo $e->getMessage(); } } }
protected function log($level, $type, $itemId, $description) { if ($this->logLevel < $level) { return false; } CEventLog::Add(array("SEVERITY" => $level >= CSaleYMHandler::LOG_LEVEL_ERROR ? "WARNING" : "NOTICE", "AUDIT_TYPE_ID" => $type, "MODULE_ID" => "sale", "ITEM_ID" => $itemId, "DESCRIPTION" => $description)); return true; }
/** * Starts statuses refreshing */ public static function startRefreshingStatuses() { $manager = self::getInstance(); $result = $manager->updateStatuses(); if (!$result->isSuccess()) { $eventLog = new \CEventLog(); $eventLog->Add(array("SEVERITY" => \CEventLog::SEVERITY_ERROR, "AUDIT_TYPE_ID" => 'SALE_DELIVERY_TRACKING_REFRESHING_STATUS_ERROR', "MODULE_ID" => "sale", "ITEM_ID" => time(), "DESCRIPTION" => implode('\\n', $result->getErrorMessages()))); } else { $data = $result->getData(); if (!empty($data)) { $manager->processStatusChange($data); } } return '\\Bitrix\\Sale\\Delivery\\Tracking\\Manager::startRefreshingStatuses();'; }
function Log($SEVERITY, $AUDIT_TYPE_ID, $MODULE_ID, $ITEM_ID, $DESCRIPTION = false, $SITE_ID = false) { return CEventLog::Add(array("SEVERITY" => $SEVERITY, "AUDIT_TYPE_ID" => $AUDIT_TYPE_ID, "MODULE_ID" => $MODULE_ID, "ITEM_ID" => $ITEM_ID, "DESCRIPTION" => $DESCRIPTION, "SITE_ID" => $SITE_ID)); }
/** @deprecated */ private static function logError($itemId, $message, Bitrix\Main\Result $result = null) { if ($result) { $message .= "\n" . implode("\n", $result->getErrorMessages()); } CEventLog::Add(array('SEVERITY' => 'ERROR', 'AUDIT_TYPE_ID' => 'SALE_1C_TO_BUSINESS_VALUE_ERROR', 'MODULE_ID' => 'sale', 'ITEM_ID' => $itemId, 'DESCRIPTION' => $message)); }
public static function takeOutOrdersToCorrespondentTable() { $platformId = \Bitrix\Sale\TradingPlatform\YandexMarket::getInstance()->getId(); if (intval($platformId) <= 0) { return ""; } $conn = \Bitrix\Main\Application::getConnection(); $helper = $conn->getSqlHelper(); $correspondence = $conn->query('SELECT ID FROM ' . $helper->quote(\Bitrix\Sale\TradingPlatform\OrderTable::getTableName()) . ' WHERE ' . $helper->quote('TRADING_PLATFORM_ID') . '=' . $platformId); //check if we already tried to convert if ($correspondence->fetch()) { return ""; } if ($conn->getType() == "mssql") { $lenOpName = "LEN"; } else { $lenOpName = "LENGTH"; } if ($conn->getType() == "oracle") { $right = 'SUBSTR(XML_ID, -(' . $lenOpName . '(XML_ID)-' . strlen(self::XML_ID_PREFIX) . '))'; } else { $right = 'RIGHT(XML_ID, ' . $lenOpName . '(XML_ID)-' . strlen(self::XML_ID_PREFIX) . ')'; } //take out correspondence to $sql = 'INSERT INTO ' . \Bitrix\Sale\TradingPlatform\OrderTable::getTableName() . ' (ORDER_ID, EXTERNAL_ORDER_ID, TRADING_PLATFORM_ID) SELECT ID, ' . $right . ', ' . $platformId . ' FROM ' . \Bitrix\Sale\Internals\OrderTable::getTableName() . ' WHERE XML_ID LIKE ' . "'" . self::XML_ID_PREFIX . "%'"; try { $conn->queryExecute($sql); } catch (\Bitrix\Main\DB\SqlQueryException $e) { CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "YMARKET_XML_ID_CONVERT_INSERT_ERROR", "MODULE_ID" => "sale", "ITEM_ID" => "YMARKET", "DESCRIPTION" => __FILE__ . ': ' . $e->getMessage())); } return ""; }
function RaiseErrorAndDie($strError, $ITEM_ID = '') { global $DB; echo 'Error: ' . str_replace('<br>', "\n", $strError) . "\n"; if (is_object($DB)) { $DB->DoConnect(); CEventLog::Add(array("SEVERITY" => "WARNING", "AUDIT_TYPE_ID" => "BACKUP_ERROR", "MODULE_ID" => "main", "ITEM_ID" => $ITEM_ID, "DESCRIPTION" => $strError)); } die; }
function Start($failed = false) { if ($this->step == 0) $_SESSION['SITE_CHECKER_LOG'] = ''; $this->test_percent = 100; // by default if ($failed) { $this->result = $this->Result(false, GetMessage('SC_TEST_FAIL')); } else { ob_start(); $this->result = call_user_func(array($this,$this->function)); $this->strError = ob_get_clean(); } if (!$this->strResult) $this->Result($this->result); if ($this->function != 'OpenLog' && !$this->fix_mode) { // write to log if (@$this->OpenLog($continue = true)) { $text = date('Y-M-d H:i:s') . ' ' . $this->strCurrentTestName . ' (' . $this->function . "): " . $this->LogResult . "\n"; if ($this->test_percent < 100) $text .= $this->test_percent.'% done' . "\n"; if ($this->strError) { $text .= strip_tags($this->strError)."\n"; $_SESSION['SITE_CHECKER_LOG'] .= $text; } if ($this->test_percent >= 100) // test finished $text .= strip_tags($this->strResult)."\n"; $text = htmlspecialchars_decode($text); fwrite($this->LogResourse, $text); } } $this->last_function = $this->function; $this->percent = floor(($this->step + $this->test_percent / 100) / count($this->arTest) * 100); if ($this->test_percent >= 100) // test finished { if ($this->step + 1 < count($this->arTest)) { $this->step++; $this->test_percent = 0; $this->arTestVars['last_value'] = ''; list($this->function, $this->strNextTestName) = each($this->arTest[$this->step]); } else // finish { if (!$this->fix_mode) // if we have a kernel { COption::SetOptionString('main', 'site_checker_success', $this->arTestVars['site_checker_success']); CEventLog::Add(array( "SEVERITY" => "WARNING", "AUDIT_TYPE_ID" => $this->arTestVars['site_checker_success'] == 'Y' ? 'SITE_CHECKER_SUCCESS' : 'SITE_CHECKER_ERROR', "MODULE_ID" => "main", "ITEM_ID" => $_SERVER['DOCUMENT_ROOT'], "DESCRIPTION" => $_SESSION['SITE_CHECKER_LOG'], )); } } } elseif ($this->result === true) $this->strResult = ''; // in case of temporary result at this step if ($this->result === false) $this->arTestVars['site_checker_success'] = 'N'; }
static function writeToEventLog($itemId, $description) { return CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "PAY_SYSTEM_ACTION_ALARM", "MODULE_ID" => "sale", "ITEM_ID" => $itemId, "DESCRIPTION" => $description)); }
/** * Adds params if they are missed * @return array Added params */ public static function addMissingKeysToParams() { $result = array(); $res = CSalePaySystemAction::GetList(array(), array("PS_ACTIVE" => "Y"), false, false, array("ID", "ACTION_FILE", "PARAMS")); while ($ps = $res->Fetch()) { $descriptionFile = $_SERVER["DOCUMENT_ROOT"] . $ps["ACTION_FILE"] . "/.description.php"; if (!file_exists($descriptionFile) || !is_file($descriptionFile)) { continue; } $arPSCorrespondence = array(); include $descriptionFile; if (!is_array($arPSCorrespondence) || empty($arPSCorrespondence)) { continue; } $arCorrespondence = CSalePaySystemAction::UnSerializeParams($ps["PARAMS"]); if (!is_array($arCorrespondence)) { continue; } $missingKeys = array_keys(array_diff_key($arPSCorrespondence, $arCorrespondence)); if (!empty($missingKeys)) { $result[$ps["ID"]] = $missingKeys; foreach ($missingKeys as $key) { $arCorrespondence[$key] = array_intersect_key($arPSCorrespondence[$key], array("TYPE" => true, "VALUE" => true)); } $updRes = CSalePaySystemAction::update($ps["ID"], array("PARAMS" => CSalePaySystemAction::SerializeParams($arCorrespondence))); if ($updRes <= 0) { $result[$ps["ID"]]["UPDATE_ERROR"] = true; } } } \CEventLog::Add(array("SEVERITY" => "INFO", "AUDIT_TYPE_ID" => "PS_PARAMS_CONVERT_RESULT", "MODULE_ID" => "sale", "ITEM_ID" => "PaySystems", "DESCRIPTION" => serialize($result))); return ""; }
/** * Addon to CheckAllBefore method after comments/messages checking * It fills special CleanTalk tables according to CleanTalk result * for better spam accounting * and logs CleanTalk events * Use it in your modules * You must call it from OnAfter* events in comment/messages checking * @param string Name of event generated module ('blog', 'forum', etc.) * @param int ID of added entity (comment, message, etc) * @param string System log event prefix, for logging */ static function CheckCommentAfter($module, $cid, $log_event = '') { global $DB; if (empty($module)) { return; } if (empty($cid) || intval($cid) < 0) { return; } if (isset($GLOBALS['ct_request_id'])) { try { $arInsert = $DB->PrepareInsert('cleantalk_cids', array('module' => $module, 'cid' => intval($cid), 'ct_request_id' => $GLOBALS['ct_request_id'], 'ct_result_comment' => isset($GLOBALS['ct_result_comment']) ? $GLOBALS['ct_result_comment'] : '')); $strSql = 'INSERT INTO cleantalk_cids(' . $arInsert[0] . ') VALUES (' . $arInsert[1] . ')'; $DB->Query($strSql); } catch (Exception $e) { } // Log CleanTalk event if (isset($GLOBALS['ct_result_comment'])) { CEventLog::Add(array('SEVERITY' => 'SECURITY', 'AUDIT_TYPE_ID' => 'CLEANTALK_EVENT', 'MODULE_ID' => $module, 'ITEM_ID' => empty($log_event) ? $module . ', mess[' . $cid . ']' : $log_event, 'DESCRIPTION' => $GLOBALS['ct_result_comment'])); } unset($GLOBALS['ct_request_id']); } }
function Start() { $this->test_percent = 100; // by default ob_start(); try { $this->result = call_user_func(array($this,$this->function)); } catch (Exception $e) { $this->Result(null, GetMessage("MAIN_SC_TEST_IS_INCORRECT")); echo $e->getMessage(); } $this->strError = ob_get_clean(); if (!$this->strResult) $this->Result($this->result); if (!$this->fix_mode) { // write to log if (@$this->OpenLog()) { $text = date('Y-M-d H:i:s') . ' ' . $this->strCurrentTestName . ' (' . $this->function . "): " . $this->LogResult . "\n"; if ($this->test_percent < 100) $text .= $this->test_percent.'% done' . "\n"; if ($this->strError) { $text .= str_replace('<br>', "\n", $this->strError)."\n"; } if ($this->test_percent >= 100) // test finished $text .= preg_replace('#<[^<>]+>#','',$this->strResult)."\n"; $text = htmlspecialchars_decode($text); fwrite($this->LogResourse, $text); } } $this->last_function = $this->function; $this->percent = floor(($this->step + $this->test_percent / 100) / count($this->arTest) * 100); if ($this->test_percent >= 100) // test finished { if ($this->step + 1 < count($this->arTest)) { $this->step++; $this->test_percent = 0; $this->arTestVars['last_value'] = ''; list($this->function, $this->strNextTestName) = each($this->arTest[$this->step]); } else // finish { if (!$this->fix_mode) // if we have a kernel { COption::SetOptionString('main', 'site_checker_success', $this->arTestVars['site_checker_success']); CEventLog::Add(array( "SEVERITY" => "WARNING", "AUDIT_TYPE_ID" => $this->arTestVars['site_checker_success'] == 'Y' ? 'SITE_CHECKER_SUCCESS' : 'SITE_CHECKER_ERROR', "MODULE_ID" => "main", "ITEM_ID" => $_SERVER['DOCUMENT_ROOT'], "DESCRIPTION" => '', )); if ($this->arTestVars['site_checker_success'] == 'Y') CAdminNotify::DeleteByTag('SITE_CHECKER'); } } } elseif ($this->result === true) $this->strResult = ''; // in case of temporary result on this step if ($this->result === false) $this->arTestVars['site_checker_success'] = 'N'; }
public function delete_album($arFields) { global $APPLICATION; $MODULE_ID = "kreattika.shopvk"; $TableNamePost = "b_shopvk_post"; $TableNameAlbums = "b_shopvk_albums"; $TableNamePhotos = "b_shopvk_photos"; $lfEventExist = false; $VKOwnerID = COption::GetOptionString($MODULE_ID, "shop_vk_owner_id", "N"); $flDeleteAlbumVK = COption::GetOptionString($MODULE_ID, "shop_vk_album_delete_album", "N"); $AlbumVKEventLog = COption::GetOptionString($MODULE_ID, "shop_vk_album_event_log", "N"); if($flDeleteAlbumVK == "Y"): $SectionID = $arFields["ID"]; $arDBAlbumFilter=array("ACTIVE"=>'\'Y\'', "VK_OWNER_ID"=>intval($VKOwnerID), "IBLOCK_ID"=>intval($arFields["IBLOCK_ID"]), "SECTION_ID"=>intval($SectionID)); $obDBAlbumResult = CSVKDataBlock::GetList($TableNameAlbums, $arDBAlbumFilter); while ($arDBAlbumResult = $obDBAlbumResult->GetNext()) : $AlbumVKID = $arDBAlbumResult["VK_ALBUM_ID"]; $DBAlbumItemID = $arDBAlbumResult["ID"]; ShopVK::delete_album($AlbumVKID, 'N'); $arDBAlbumFields = array( "ACTIVE"=>"N", "LAST_MODIFIED"=>ConvertTimeStamp(time(), "FULL", $arElFields['LID']), ); CSVKDataBlock::Update($TableNameAlbums, $arDBAlbumFields, $arDBAlbumResult["ID"]); $EventLogDesc = 'Delete VKAlbumID: '.$AlbumVKID.', for SectionID: '.$SectionID; if($AlbumVKEventLog=='Y'): CEventLog::Add(array( "SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "SHOP_VK_AUTOEX_ALBUM", "MODULE_ID" => $MODULE_ID, "ITEM_ID" => $arFields['ID'], "DESCRIPTION" => $EventLogDesc, )); endif; endwhile; endif; }
public static function getAllPecomCities($cleanCache = false) { global $APPLICATION; $ttl = 2592000; $data = array(); $cacheId = "SaleDeliveryPecomCities"; $cacheManager = \Bitrix\Main\Application::getInstance()->getManagedCache(); if ($cleanCache) { $cacheManager->clean($cacheId); } if ($cacheManager->read($ttl, $cacheId)) { $data = $cacheManager->get($cacheId); } if (empty($data)) { $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5)); $jsnData = $http->get("http://www.pecom.ru/ru/calc/towns.php"); $errors = $http->getError(); if (!$jsnData && !empty($errors)) { $strError = ""; foreach ($errors as $errorCode => $errMes) { $strError .= $errorCode . ": " . $errMes; } \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_DELIVERY", "MODULE_ID" => "sale", "ITEM_ID" => "PECOM_GET_TOWNS", "DESCRIPTION" => $strError)); } $data = json_decode($jsnData, true); if (strtolower(SITE_CHARSET) != 'utf-8') { $data = $APPLICATION->ConvertCharsetArray($data, 'utf-8', SITE_CHARSET); if (is_array($data)) { foreach ($data as $key => $value) { $newKey = $APPLICATION->ConvertCharset($key, 'utf-8', SITE_CHARSET); $data[$newKey] = $value; unset($data[$key]); } } } if (!is_array($data)) { $data = array(); } $cacheManager->set($cacheId, $data); } return $data; }
function OnAfterIBlockElementAddNews(&$arFields) { if (CModule::IncludeModule("iblock")) { //При добавлении новости if (NEWS_IBLOCK_ID == intval($arFields["IBLOCK_ID"])) { //Добавляем все email из ИБ в массив $arSelect = array("ID", "NAME"); $arFilter = array("IBLOCK_ID" => EMAIL_IBLOCK_ID, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y"); $res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => THE_NUMBER_SUBSCRIBE_EMAIL), $arSelect); while ($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); $arEmail[] = $arFields['NAME']; } //Отбираем последнюю добавленную новость $arSelectNews = array("ID", "NAME", "DETAIL_PICTURE", "DETAIL_TEXT", "DETAIL_PAGE_URL"); $arFilterNews = array("IBLOCK_ID" => NEWS_IBLOCK_ID, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y"); $resNews = CIBlockElement::GetList(array("ID" => "DESC"), $arFilterNews, false, array("nPageSize" => THE_NUMBER_ELEMENT), $arSelectNews); while ($arList = $resNews->GetNext()) { $arNews[] = $arList; } if (count($arEmail) > 0) { //если мы нашли email //то воспользуемся функцией отправки почтовых уведомлений CEvent - класс для работы с почтовыми событиями //метод CEvent::Send, этот метод принимает на себя некоторые параметры $imageSrc = CFile::ResizeImageGet($arNews[KEY_FIRST_ELEMENT]["DETAIL_PICTURE"], array('width' => '300', 'height' => '300'), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true); foreach ($arEmail as $arEmailItem) { $arEventFields = array("EMAIL" => $arEmailItem, "NAME" => $arNews[KEY_FIRST_ELEMENT]['NAME'], "TEXT" => $arNews[KEY_FIRST_ELEMENT]['DETAIL_TEXT'], "DETAIL_PICTURE" => $_SERVER['DOCUMENT_ROOT'] . '' . $imageSrc['src'], "DETAIL_PAGE_URL" => $_SERVER['DOCUMENT_ROOT'] . '' . $arNews[KEY_FIRST_ELEMENT]['DETAIL_PAGE_URL']); CEvent::Send("SUBSCRIBE_NEWS", INIT_SITE_ID, $arEventFields); } } //В журнал добавим что у нас добалвена новость и произошла рассылка новостей CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "SUBSCRIBE_NEWS", "MODULE_ID" => "iblock", "ITEM_ID" => "", "DESCRIPTION" => "Добавлена Новость с названием: " . $arNews[KEY_FIRST_ELEMENT]['NAME'] . "и\tпроизведенна рассылка по email: " . implode(", ", $arEmail) . 'и добавленно изображение' . $imageSrc['src'])); } //При добавлении Отзыва отправлять на почту сообщение if (REVIEWS_IBLOCK_ID == intval($arFields["IBLOCK_ID"])) { //Отбираем последнюю добавленную новость $arSelect = array("ID", "NAME", "PREVIEW_TEXT", "PROPERTY_AUTHOR_EMAIL"); $arFilter = array("IBLOCK_ID" => REVIEWS_IBLOCK_ID, "ACTIVE_DATE" => "Y", "ACTIVE" => "N"); $res = CIBlockElement::GetList(array("ID" => "DESC"), $arFilter, false, array("nPageSize" => THE_NUMBER_ELEMENT), $arSelect); while ($arList = $res->GetNext()) { $arReviews[] = $arList; } $arEventFields = array("ID" => $arReviews[KEY_FIRST_ELEMENT]['ID'], "EMAIL" => $arReviews[KEY_FIRST_ELEMENT]['PROPERTY_AUTHOR_EMAIL_VALUE'], "NAME" => $arReviews[KEY_FIRST_ELEMENT]['NAME'], "TEXT" => $arReviews[KEY_FIRST_ELEMENT]['PREVIEW_TEXT']); CEvent::Send("REVIEWS_ADD", INIT_SITE_ID, $arEventFields); CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "REVIEWS_ADD", "MODULE_ID" => "iblock", "ITEM_ID" => "", "DESCRIPTION" => "Добавлен Отзыв от автора: " . $arReviews[KEY_FIRST_ELEMENT]['NAME'] . ', email автора: ' . $arReviews[KEY_FIRST_ELEMENT]['PROPERTY_AUTHOR_EMAIL_VALUE'] . ', текст отзыва: ' . $arReviews[KEY_FIRST_ELEMENT]['PREVIEW_TEXT'])); } //При добавлении Вопроса отправлять на почту администратора сообщение if (QUESTIONS_IBLOCK_ID == intval($arFields["IBLOCK_ID"])) { //Отбираем последний добавленный вопрос $arSelect = array("ID", "NAME", "PREVIEW_TEXT", "PROPERTY_AUTHOR_EMAIL"); $arFilter = array("IBLOCK_ID" => QUESTIONS_IBLOCK_ID, "ACTIVE_DATE" => "Y", "ACTIVE" => "N"); $res = CIBlockElement::GetList(array("ID" => "DESC"), $arFilter, false, array("nPageSize" => THE_NUMBER_ELEMENT), $arSelect); while ($arList = $res->GetNext()) { $arQuestions[] = $arList; } $arEventFields = array("ID" => $arQuestions[KEY_FIRST_ELEMENT]['ID'], "EMAIL" => $arQuestions[KEY_FIRST_ELEMENT]['PROPERTY_AUTHOR_EMAIL_VALUE'], "NAME" => $arQuestions[KEY_FIRST_ELEMENT]['NAME'], "TEXT" => $arQuestions[KEY_FIRST_ELEMENT]['PREVIEW_TEXT']); CEvent::Send("QUESTIONS_ADD", INIT_SITE_ID, $arEventFields); CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "QUESTIONS_ADD", "MODULE_ID" => "iblock", "ITEM_ID" => "", "DESCRIPTION" => "Добавлен Вопрос от автора: " . $arQuestions[KEY_FIRST_ELEMENT]['NAME'] . ', email автора: ' . $arQuestions[KEY_FIRST_ELEMENT]['PROPERTY_AUTHOR_EMAIL_VALUE'] . ', текст вопроса: ' . $arQuestions[KEY_FIRST_ELEMENT]['PREVIEW_TEXT'])); } //При добавлении заявки Записи на прием отправлять на почту администратора сообщение if (ID_RECORD_ON_RECEPTION == intval($arFields["IBLOCK_ID"])) { //Отбираем последний добавленный вопрос $arSelect = array("ID", "NAME", "PROPERTY_PHONE", "PROPERTY_ADDRESS", "PROPERTY_JOB_TITLE", "PROPERTY_DOCTORS", "PROPERTY_DATA", "PROPERTY_TIME", "PROPERTY_COMMENTS"); $arFilter = array("IBLOCK_ID" => ID_RECORD_ON_RECEPTION, "ACTIVE_DATE" => "Y", "ACTIVE" => "N"); $res = CIBlockElement::GetList(array("ID" => "DESC"), $arFilter, false, array("nPageSize" => THE_NUMBER_ELEMENT), $arSelect); while ($arList = $res->GetNext()) { $arRecord[] = $arList; } $arEventFields = array("FIO" => $arRecord[KEY_FIRST_ELEMENT]['NAME'], "PHONE" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_PHONE_VALUE'], "ADDRESS" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_ADDRESS_VALUE'], "JOB_TITLE" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_JOB_TITLE_VALUE'], "DOCTORS" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_DOCTORS_VALUE'], "DATA" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_DATA_VALUE'], "TIME" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_TIME_VALUE'], "COMMENTS" => $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_COMMENTS_VALUE'], "RECORD_DATE" => ConvertTimeStamp(false, 'FULL')); CEvent::Send("RECORDS_ADD", INIT_SITE_ID, $arEventFields); CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "RECORDS_ADD", "MODULE_ID" => "iblock", "ITEM_ID" => "", "DESCRIPTION" => "Добавлена запись на прием: ФИО: " . $arRecord[KEY_FIRST_ELEMENT]['NAME'] . ', телефон пациента: ' . $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_PHONE_VALUE'] . ', адрес стоматологии: ' . $arRecord[KEY_FIRST_ELEMENT]['PROPERTY_ADDRESS_VALUE'])); } } }