Exemplo n.º 1
0
 /**
  * @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));
 }
Exemplo n.º 2
0
 /**
  * @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;
     }
 }
Exemplo n.º 3
0
 /**
  * @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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
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();
}
Exemplo n.º 6
0
 /**
  *
  * 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));
 }
Exemplo n.º 7
0
 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;
 }
Exemplo n.º 8
0
 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();";
 }
Exemplo n.º 9
0
    $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));
        }
    }
}
Exemplo n.º 10
0
 /**
  * @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;
 }
Exemplo n.º 11
0
     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')) {
Exemplo n.º 12
0
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();
		}			
	}
}
Exemplo n.º 13
0
 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;
 }
Exemplo n.º 14
0
 /**
  * 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();';
 }
Exemplo n.º 15
0
 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));
 }
Exemplo n.º 16
0
 /** @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));
 }
Exemplo n.º 17
0
    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 "";
    }
Exemplo n.º 18
0
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;
}
Exemplo n.º 19
0
	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';
	}
Exemplo n.º 20
0
 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));
 }
Exemplo n.º 21
0
 /**
  * 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 "";
 }
Exemplo n.º 22
0
 /**
  * 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']);
     }
 }
Exemplo n.º 23
0
	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';
	}
Exemplo n.º 24
0
	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;
	}
Exemplo n.º 25
0
 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;
 }
Exemplo n.º 26
0
 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']));
         }
     }
 }