- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/task.php
- Класс: CAllTask
- Вызов: CAllTask::GetList
static function GetList($arOrder = array('MODULE_ID'=>'asc','LETTER'=>'asc'), $arFilter = array())
{
global $DB, $CACHE_MANAGER;
if(CACHED_b_task !== false)
{
$context = MainContext::getCurrent();
$cacheId = "b_task".md5(serialize($arOrder).".".serialize($arFilter).".".$context->getLanguage());
if($CACHE_MANAGER->Read(CACHED_b_task, $cacheId, "b_task"))
{
$arResult = $CACHE_MANAGER->Get($cacheId);
$res = new CDBResult;
$res->InitFromArray($arResult);
return $res;
}
}
static $arFields = array(
"ID" => array("FIELD_NAME" => "T.ID", "FIELD_TYPE" => "int"),
"NAME" => array("FIELD_NAME" => "T.NAME", "FIELD_TYPE" => "string"),
"LETTER" => array("FIELD_NAME" => "T.LETTER", "FIELD_TYPE" => "string"),
"MODULE_ID" => array("FIELD_NAME" => "T.MODULE_ID", "FIELD_TYPE" => "string"),
"SYS" => array("FIELD_NAME" => "T.SYS", "FIELD_TYPE" => "string"),
"BINDING" => array("FIELD_NAME" => "T.BINDING", "FIELD_TYPE" => "string")
);
$err_mess = (static::err_mess())."
Function: GetList
Line: ";
$arSqlSearch = array();
if(is_array($arFilter))
{
foreach($arFilter as $n => $val)
{
$n = strtoupper($n);
if((string)$val == '' || strval($val) == "NOT_REF")
continue;
if(isset($arFields[$n]))
{
$arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val, ($n == 'NAME'? "Y" : "N"));
}
}
}
$strOrderBy = '';
foreach($arOrder as $by=>$order)
if(isset($arFields[strtoupper($by)]))
$strOrderBy .= $arFields[strtoupper($by)]["FIELD_NAME"].' '.(strtolower($order) == 'desc'?'desc':'asc').',';
if($strOrderBy <> '')
$strOrderBy = "ORDER BY ".rtrim($strOrderBy, ",");
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSql = "
SELECT
T.ID, T.NAME, T.DESCRIPTION, T.MODULE_ID, T.LETTER, T.SYS, T.BINDING
FROM
b_task T
WHERE
".$strSqlSearch."
".$strOrderBy;
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
$arResult = array();
while($arRes = $res->Fetch())
{
$arRes['TITLE'] = static::GetLangTitle($arRes['NAME'], $arRes['MODULE_ID']);
$arRes['DESC'] = static::GetLangDescription($arRes['NAME'], $arRes['DESCRIPTION'], $arRes['MODULE_ID']);
$arResult[] = $arRes;
}
$res->InitFromArray($arResult);
if(CACHED_b_task !== false)
{
/** @noinspection PhpUndefinedVariableInspection */
$CACHE_MANAGER->Set($cacheId, $arResult);
}
return $res;
}