- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/file.php
- Класс: CFile
- Вызов: CFile::GetList
static function GetList($arOrder = array(), $arFilter = array())
{
global $DB;
$arSqlSearch = array();
$arSqlOrder = array();
$strSqlSearch = "";
if(is_array($arFilter))
{
foreach($arFilter as $key => $val)
{
$key = strtoupper($key);
$strOperation = '';
if(substr($key, 0, 1) == "@")
{
$key = substr($key, 1);
$strOperation = "IN";
$arIn = is_array($val)? $val: explode(',', $val);
$val = '';
foreach($arIn as $v)
{
$val .= ($val <> ''? ',':'')."'".$DB->ForSql(trim($v))."'";
}
}
else
{
$val = $DB->ForSql($val);
}
if($val == '')
continue;
switch($key)
{
case "MODULE_ID":
case "ID":
case "EXTERNAL_ID":
case "SUBDIR":
case "FILE_NAME":
case "ORIGINAL_NAME":
case "CONTENT_TYPE":
case "HANDLER_ID":
if ($strOperation == "IN")
$arSqlSearch[] = "f.".$key." IN (".$val.")";
else
$arSqlSearch[] = "f.".$key." = '".$val."'";
break;
}
}
}
if(!empty($arSqlSearch))
$strSqlSearch = " WHERE (".implode(") AND (", $arSqlSearch).")";
if(is_array($arOrder))
{
static $aCols = array(
"ID" => 1,
"TIMESTAMP_X" => 1,
"MODULE_ID" => 1,
"HEIGHT" => 1,
"WIDTH" => 1,
"FILE_SIZE" => 1,
"CONTENT_TYPE" => 1,
"SUBDIR" => 1,
"FILE_NAME" => 1,
"ORIGINAL_NAME" => 1,
"EXTERNAL_ID" => 1,
);
foreach($arOrder as $by => $ord)
{
$by = strtoupper($by);
if(array_key_exists($by, $aCols))
$arSqlOrder[] = "f.".$by." ".(strtoupper($ord) == "DESC"? "DESC":"ASC");
}
}
if(empty($arSqlOrder))
$arSqlOrder[] = "f.ID ASC";
$strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
$strSql =
"SELECT f.*, ".$DB->DateToCharFunction("f.TIMESTAMP_X")." as TIMESTAMP_X ".
"FROM b_file f ".
$strSqlSearch.
$strSqlOrder;
$res = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
return $res;
}