• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/medialib.php
  • Класс: CMedialibCollection
  • Вызов: CMedialibCollection::GetList
static function GetList($Params = array())
{
	global $DB, $USER;
	$arFilter = $Params['arFilter'];
	$arOrder = isset($Params['arOrder']) ? $Params['arOrder'] : Array('ID' => 'asc');

	static $arFields = array(
		"ID" => Array("FIELD_NAME" => "MLC.ID", "FIELD_TYPE" => "int"),
		"NAME" => Array("FIELD_NAME" => "MLC.NAME", "FIELD_TYPE" => "string"),
		"ACTIVE" => Array("FIELD_NAME" => "MLC.ACTIVE", "FIELD_TYPE" => "string"),
		"DATE_UPDATE" => Array("FIELD_NAME" => "MLC.DATE_UPDATE", "FIELD_TYPE" => "date"),
		"KEYWORDS" => Array("FIELD_NAME" => "MLC.KEYWORDS", "FIELD_TYPE" => "string"),
		"DESCRIPTION" => Array("FIELD_NAME" => "MLC.DESCRIPTION", "FIELD_TYPE" => "string"),
		"OWNER_ID" => Array("FIELD_NAME" => "MLC.OWNER_ID", "FIELD_TYPE" => "int"),
		"PARENT_ID" => Array("FIELD_NAME" => "MLC.PARENT_ID", "FIELD_TYPE" => "int"),
		"ML_TYPE" => Array("FIELD_NAME" => "MLC.ML_TYPE", "FIELD_TYPE" => "string")
	);

	$err_mess = (CMedialibCollection::GetErrorMess())."
Function: GetList
Line: "; $arSqlSearch = array(); $strSqlSearch = ""; if(is_array($arFilter)) { $filter_keys = array_keys($arFilter); for($i=0, $l = count($filter_keys); $i<$l; $i++) { $n = mb_strtoupper($filter_keys[$i]); $val = $arFilter[$filter_keys[$i]]; if((is_string($val) && $val == '') || (!is_array($val) && (string)$val==="NOT_REF")) continue; if ($n == 'ID' || $n == 'PARENT_ID' || $n == 'OWNER_ID') $arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val, 'N'); elseif(isset($arFields[$n])) $arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val); } } $strOrderBy = ''; foreach($arOrder as $by=>$order) if(isset($arFields[mb_strtoupper($by)])) $strOrderBy .= $arFields[mb_strtoupper($by)]["FIELD_NAME"].' '.(mb_strtolower($order) == 'desc'?'desc'.($DB->type == "ORACLE"?" NULLS LAST":""):'asc'.($DB->type == "ORACLE"?" NULLS FIRST":"")).','; if($strOrderBy <> '') $strOrderBy = "ORDER BY ".rtrim($strOrderBy, ","); $strSqlSearch = GetFilterSqlSearch($arSqlSearch); if (isset($arFilter['TYPES']) && is_array($arFilter['TYPES'])) { $strTypes = ""; for($i = 0, $l = count($arFilter['TYPES']); $i < $l; $i++) $strTypes .= ",".intval($arFilter['TYPES'][$i]); $strSqlSearch .= "n AND ML_TYPE in (".trim($strTypes, ", ").")"; } $strSql = " SELECT MLC.* FROM b_medialib_collection MLC WHERE $strSqlSearch $strOrderBy"; $res = $DB->Query($strSql, false, $err_mess.__LINE__); $arResult = Array(); while($arRes = $res->Fetch()) $arResult[] = $arRes; return $arResult; }