Current Path : /home/bitrix/ext_www/dev.ballu.in.ua/import/ |
Current File : /home/bitrix/ext_www/dev.ballu.in.ua/import/.filecacher.functions.php |
<? #******************************* INPUT ************************** // Проверка доступности файла, возвращение результата - адреса файла на сервере, или пометки что файл принят на загрузку function CheckGatewayFile($hash) { global $DB; // проверка на ошибку if(empty($hash)) return "error"; // если ничего не найдется скажем, что пусто $out = false; $sql = "SELECT * FROM a_gateway_file_stack WHERE HASH='$hash'; "; $results = $DB->Query($sql); while ($row = $results->Fetch()){ // что-то вернулось if(!empty($row["PATH"])) // найден, вернем путь $out = $row["PATH"]; // не готов else $out = "not_ready"; } return $out; } // Принимает файл на регистрацию и отправляет данны ео нем если найден // $file = [ // "HASH" => $pval, // "ELEMENT_ID" => $pid, // "PROPERTY_CODE" => $pr["CODE"] // ]; function registerGatewayFile($arFile) { // получение статуса файла error | not_ready | false | <PATH> $check = CheckGatewayFile($arFile["HASH"]); // возврат ошибки if( $check == "error") return "error"; // некорректные данные if(empty($arFile["HASH"])) return "error_data"; if($check == false){ // пока пусто, файла нет global $DB; $strSql = "INSERT INTO a_gateway_file_stack (HASH, DATE) VALUES ('".$arFile["HASH"]."', NOW());"; //echol($strSql); $DB->Query($strSql, false, $err_mess.__LINE__); //регистрируем элемента - слушателя setFileElementLink($arFile); return "registered"; }elseif($check=="not_ready"){ // файл есть, не готов //регистрируем элемента - слушателя setFileElementLink($arFile); return "not_ready"; }else{ setFileElementLink($arFile); // должен вернуть путь return $check; } } function setFileElementLink($arFile){ global $IBLOCK; global $DB; // готовим параметры $ibl = $IBLOCK; $fid = $arFile["HASH"]; $elid = $arFile["ELEMENT_ID"]; $pcode = $arFile["PROPERTY_CODE"]; $hash = md5($fid.$elid.$pcode); // обновляем или добавляем $strSql = "INSERT INTO a_gateway_file_element (HASH, FILE_ID, ELEMENT_ID, DATE, PROPERTY_KEY) VALUES ('$hash', '$fid', '$elid', NOW(), '$pcode') ON DUPLICATE KEY UPDATE DATE=NOW();"; $DB->Query($strSql, false, $err_mess.__LINE__); } #******************************* PROCESSING ************************** function getFileListeners($hash) { global $DB; if(empty($hash)) return false; $sqlElements = "SELECT * FROM a_gateway_file_element WHERE FILE_ID='$hash';"; $res = $DB->Query($sqlElements, false, $err_mess.__LINE__); while($elLink = $res->Fetch()){ //echol($elLink); $out[$elLink["FILE_ID"]][$elLink["ELEMENT_ID"]] = $elLink["PROPERTY_KEY"]; } return $out; } function checkElementReady($arIn) { if(empty($arIn)) return false; echol($arIn); foreach($arIn as $id => $property){ } } ?>