public function GetList($aSort=array(), $arFilter=Array(), $getCommon=true) { global $DB; $err_mess = (CAdminFilter::err_mess())."<br>Function: GetList<br>Line: "; $arSqlSearch = Array(); if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if (strlen($val)<=0 || $val=="NOT_REF") continue; switch(strtoupper($key)) { case "ID": $arSqlSearch[] = GetFilterQuery("F.ID",$val,"N"); break; case "USER_ID": if($getCommon) $arSqlSearch[] = "F.USER_ID=".intval($val)." OR F.COMMON='Y'"; else $arSqlSearch[] = "F.USER_ID = ".intval($val); break; case "FILTER_ID": $arSqlSearch[] = GetFilterQuery("F.FILTER_ID", $val); break; case "NAME": $arSqlSearch[] = GetFilterQuery("F.NAME", $val); break; case "FIELDS": $arSqlSearch[] = GetFilterQuery("F.FIELDS", $val); break; case "COMMON": $arSqlSearch[] = "F.COMMON = '".$DB->ForSql($val,1)."'"; break; case "PRESET": $arSqlSearch[] = "F.PRESET = '".$DB->ForSql($val,1)."'"; break; case "LANGUAGE_ID": $arSqlSearch[] = "F.LANGUAGE_ID = '".$DB->ForSql($val,2)."'"; break; case "PRESET_ID": $arSqlSearch[] = GetFilterQuery("F.PRESET_ID", $val); break; case "SORT": $arSqlSearch[] = GetFilterQuery("F.SORT", $val); break; case "SORT_FIELD": $arSqlSearch[] = GetFilterQuery("F.SORT_FIELD", $val); break; } } } $sOrder = ""; foreach($aSort as $key=>$val) { $ord = (strtoupper($val) <> "ASC"? "DESC":"ASC"); switch (strtoupper($key)) { case "ID": $sOrder .= ", F.ID ".$ord; break; case "USER_ID": $sOrder .= ", F.USER_ID ".$ord; break; case "FILTER_ID": $sOrder .= ", F.FILTER_ID ".$ord; break; case "NAME": $sOrder .= ", F.NAME ".$ord; break; case "FIELDS": $sOrder .= ", F.FIELDS ".$ord; break; case "COMMON": $sOrder .= ", F.COMMON ".$ord; break; case "PRESET": $sOrder .= ", F.PRESET ".$ord; break; case "LANGUAGE_ID": $sOrder .= ", F.LANGUAGE_ID ".$ord; break; case "PRESET_ID": $sOrder .= ", F.PRESET_ID ".$ord; break; case "SORT": $sOrder .= ", F.SORT ".$ord; break; case "SORT_FIELD": $sOrder .= ", F.SORT_FIELD ".$ord; break; } } if (strlen($sOrder)<=0) $sOrder = "F.ID ASC"; $strSqlOrder = " ORDER BY ".TrimEx($sOrder,","); $strSqlSearch = GetFilterSqlSearch($arSqlSearch,"noFilterLogic"); $strSql = " SELECT F.ID, F.USER_ID, F.NAME, F.FILTER_ID, F.FIELDS, F.COMMON, F.PRESET, F.LANGUAGE_ID, F.PRESET_ID, F.SORT, F.SORT_FIELD FROM b_filters F WHERE ".$strSqlSearch." ".$strSqlOrder; $res = $DB->Query($strSql, false, $err_mess.__LINE__); return $res; }