- Модуль: support
- Путь к файлу: ~/bitrix/modules/support/classes/general/timetable.php
- Класс: CSupportTimetable
- Вызов: CSupportTimetable::GetList
static function GetList($arSort = null, $arFilter = null)
{
$err_mess = (self::err_mess())."
Function: GetList
Line: ";
global $DB, $USER, $APPLICATION;
$table = self::TABLE;
$arSqlSearch = Array();
if(!is_array($arFilter))
{
$arFilter = Array();
}
foreach($arFilter as $key => $val)
{
if((is_array($val) && count($val) <= 0) || (!is_array($val) && ((string) $val == '' || $val === 'NOT_REF')))
{
continue;
}
$key = mb_strtoupper($key);
if (is_array($val))
{
$val = implode(" | ",$val);
}
switch($key)
{
case "ID":
$arSqlSearch[] = GetFilterQuery("T.ID", $val, "N");
break;
case "~NAME":
//case "DESCRIPTION":
$arSqlSearch[] = GetFilterQuery("T.NAME", $val, "N");
break;
}
}
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$arSort = is_array($arSort) ? $arSort : array();
if(isset($arSort["DESCRIPTION"]))
{
unset($arSort["DESCRIPTION"]);
}
if(count($arSort) > 0)
{
$ar1 = array_merge($DB->GetTableFieldsList($table), array());
$ar2 = array_keys($arSort);
$arDiff = array_diff($ar2, $ar1);
if(is_array($arDiff) && count($arDiff) > 0) foreach($arDiff as $value) unset($arSort[$value]);
}
if(count($arSort) <= 0)
{
$arSort = array("ID" => "asc");
}
foreach($arSort as $by => $order)
{
if(mb_strtoupper($order) != "DESC")
{
$order="ASC";
}
$arSqlOrder[] = $by . " " . $order;
}
if(is_array($arSqlOrder) && count($arSqlOrder) > 0)
{
$strSqlOrder = " ORDER BY " . implode(",", $arSqlOrder);
}
$strSql = "
SELECT
T.*
FROM
$table T
WHERE
$strSqlSearch
$strSqlOrder
";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
return $rs;
}