Your IP : 3.144.34.97
<?
#******************************* 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){
}
}
?>