"ASC"), Array("IBLOCK_ID" => $iblock_id, "ID" => $id, ), false, Array("nPageSize" => 1000)); $ar_res = Array(); while ($obElement = $res->GetNextElement()) { $ar_res = $obElement->GetFields(); $ar_res['PROPERTIES'] = $obElement->GetProperties(); } return $ar_res; } function get_related_array($iblock_id, $ids) { $ar_res = Array(); foreach($ids AS $id) { $res = CIBlockElement::GetList(Array("NAME" => "ASC"), Array("IBLOCK_ID" => $iblock_id, "ID" => $id, ), false, Array("nPageSize" => 1000)); while ($obElement = $res->GetNextElement()) { $ar_res_element = $obElement->GetFields(); $ar_res_element['PROPERTIES'] = $obElement->GetProperties(); $ar_res[] = $ar_res_element; } } return $ar_res; } function get_ext_from_mime($mime) { $mime_map = [ 'application/x-compressed' => '7zip', 'image/bmp' => 'bmp', 'image/x-bmp' => 'bmp', 'image/x-bitmap' => 'bmp', 'image/x-xbitmap' => 'bmp', 'image/x-win-bitmap' => 'bmp', 'image/x-windows-bmp' => 'bmp', 'image/ms-bmp' => 'bmp', 'image/x-ms-bmp' => 'bmp', 'application/bmp' => 'bmp', 'application/x-bmp' => 'bmp', 'application/x-win-bitmap' => 'bmp', 'text/x-comma-separated-values' => 'csv', 'text/comma-separated-values' => 'csv', 'application/vnd.msexcel' => 'csv', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', 'application/x-msdownload' => 'exe', 'image/gif' => 'gif', 'application/x-gzip' => 'gzip', 'text/html' => 'html', 'image/jpeg' => 'jpeg', 'image/pjpeg' => 'jpeg', 'application/pdf' => 'pdf', 'application/octet-stream' => 'pdf', 'image/png' => 'png', 'image/x-png' => 'png', 'application/powerpoint' => 'ppt', 'application/vnd.ms-powerpoint' => 'ppt', 'application/vnd.ms-office' => 'ppt', 'application/msword' => 'doc', 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', 'application/x-rar' => 'rar', 'application/rar' => 'rar', 'application/x-rar-compressed' => 'rar', 'text/rtf' => 'rtf', 'text/richtext' => 'rtx', 'application/x-tar' => 'tar', 'application/x-gzip-compressed' => 'tgz', 'image/tiff' => 'tiff', 'text/plain' => 'txt', 'application/excel' => 'xl', 'application/msexcel' => 'xls', 'application/x-msexcel' => 'xls', 'application/x-ms-excel' => 'xls', 'application/x-excel' => 'xls', 'application/x-dos_ms_excel' => 'xls', 'application/xls' => 'xls', 'application/x-xls' => 'xls', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', 'application/vnd.ms-excel' => 'xlsx', 'application/xml' => 'xml', 'text/xml' => 'xml', 'text/xsl' => 'xsl', 'application/xspf+xml' => 'xspf', 'application/x-zip' => 'zip', 'application/zip' => 'zip', 'application/x-zip-compressed' => 'zip', 'application/s-compressed' => 'zip', 'multipart/x-zip' => 'zip', ]; return isset($mime_map[ $mime ]) ? $mime_map[ $mime ] : false; } function mb_ucfirst($string) { $string = mb_strtoupper(mb_substr($string, 0, 1)) . mb_substr($string, 1); return $string; } use Bitrix\Main\Diag\ExceptionHandlerFormatter; class HttpExceptionHandlerOutput extends \Bitrix\Main\Diag\HttpExceptionHandlerOutput { public function renderExceptionMessage($exception, $debug = false) { if ($debug) { echo ExceptionHandlerFormatter::format($exception, true); } else { global $APPLICATION; $APPLICATION->RestartBuffer(); $APPLICATION->__view = []; include($_SERVER["DOCUMENT_ROOT"] . "/local/templates/500/header.php"); include $_SERVER['DOCUMENT_ROOT'] . '/500.php'; include($_SERVER["DOCUMENT_ROOT"] . "/local/templates/500/footer.php"); CHTTP::SetStatus("500 Internal Server Error"); } } } AddEventHandler("main", "OnEpilog", "OnEpilogHandler", 1); function OnEpilogHandler() { if (defined('ERROR_404') && ERROR_404 == 'Y') { global $APPLICATION; $APPLICATION->RestartBuffer(); include $_SERVER['DOCUMENT_ROOT'].'/local/templates/404/header.php'; include $_SERVER['DOCUMENT_ROOT'].'/404.php'; include $_SERVER['DOCUMENT_ROOT'].'/local/templates/404/footer.php'; } } \Bitrix\Main\Application::getInstance()->getExceptionHandler()->setHandlerOutput(new HttpExceptionHandlerOutput()); function zerof_request($path, $query) { $key_sha1 = strtoupper(sha1(ZEROF_PASSWORD, false)); $date = gmdate('D, d M Y H:i:s T'); $string_to_sign = ""; $string_to_sign .= "GET\n"; $string_to_sign .= "\n"; $string_to_sign .= $date."\n"; $string_to_sign .= $path; $data = mb_convert_encoding($string_to_sign, mb_detect_encoding($string_to_sign), "UTF-8"); $hash = hash_hmac("SHA1", $data, $key_sha1, false); $hash_base64 = base64_encode(hex2bin($hash)); //print "HASH ".$hash_base64."\n"; //print "DATE ".$date."\n"; //print "\n"; $headers = [ "Authorization: ZWS ".ZEROF_USERNAME.":".$hash_base64, "Date: ".$date, "Accept: application/json", ]; $url = "https://api.zerof.ru".$path; if($query !== null) { $url = $url."?".http_build_query($query); } $request = curl_init(); curl_setopt($request, CURLOPT_URL, $url); curl_setopt($request, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($request, CURLOPT_TIMEOUT, 30); curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); curl_setopt($request, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($request) or die(curl_error($request)); $http_code = curl_getinfo($request, CURLINFO_HTTP_CODE); curl_close($request); return $http_code === 200 ? $response : false; } function zerof_get_images($task_uid) { $images = []; $tasks_car_in_new = zerof_request("/v2/tasks/find", [ "status" => "new", "value" => $task_uid, "profile" => 703 ]); $tasks_car_in_process = zerof_request("/v2/tasks/find", [ "status" => "process", "value" => $task_uid, "profile" => 703 ]); $tasks_car_in_pass = zerof_request("/v2/tasks/find", [ "status" => "pass", "value" => $task_uid, "profile" => 703 ]); $tasks_trucks_in_new = zerof_request("/v2/tasks/find", [ "status" => "new", "value" => $task_uid, "profile" => 704 ]); $tasks_trucks_in_process = zerof_request("/v2/tasks/find", [ "status" => "process", "value" => $task_uid, "profile" => 704 ]); $tasks_trucks_in_pass = zerof_request("/v2/tasks/find", [ "status" => "pass", "value" => $task_uid, "profile" => 704 ]); $tasks_car_in_process_data = json_decode(html_entity_decode($tasks_car_in_process), true); $tasks_car_in_pass_data = json_decode(html_entity_decode($tasks_car_in_pass), true); $tasks_car_in_new_data = json_decode(html_entity_decode($tasks_car_in_new), true); $tasks_trucks_in_process_data = json_decode(html_entity_decode($tasks_trucks_in_process), true); $tasks_trucks_in_pass_data = json_decode(html_entity_decode($tasks_trucks_in_pass), true); $tasks_trucks_in_new_data = json_decode(html_entity_decode($tasks_trucks_in_new), true); //var_dump($images_response_array); $tasks = array_merge( $tasks_car_in_process_data[array_keys($tasks_car_in_process_data)[0]], $tasks_car_in_pass_data[array_keys($tasks_car_in_pass_data)[0]], $tasks_car_in_new_data[array_keys($tasks_car_in_new_data)[0]], $tasks_trucks_in_process_data[array_keys($tasks_trucks_in_process_data)[0]], $tasks_trucks_in_pass_data[array_keys($tasks_trucks_in_pass_data)[0]], $tasks_trucks_in_new_data[array_keys($tasks_trucks_in_new_data)[0]], ); print "\n".$task_uid." TASKS:\n"; print_r($tasks[0]); if(isset($tasks[0])) { $task_string = zerof_request("/v2/tasks/".$tasks[0]['id'], null); $task = json_decode(html_entity_decode($task_string), true); print "TASK:\n"; print_r($task); foreach($task['views'][0]['files'] AS $file) { $image = zerof_request("/v2/tasks/downloadfile", [ "id" => $tasks[0]['id'], "name" => $file['name'] ]); print_r("DOWNLOADED LEN OF IMAGE FILE: ".strlen($image)); print "\n"; if(strlen($image) < 100) { print "IMAGE ???? ".$image."\n\n"; } if($image) { array_push($images, $image); } } print "\n"; print "\n"; } print "\n"; return $images; } ?>