- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/undo.php
- Класс: CUndo
- Вызов: CUndo::GetList
static function GetList($Params = array())
{
global $DB;
$arFilter = $Params['arFilter'];
$arOrder = $Params['arOrder'] ?? array('ID' => 'asc');
$arFields = array(
"ID" => array("FIELD_NAME" => "U.ID", "FIELD_TYPE" => "string"),
"MODULE_ID" => array("FIELD_NAME" => "U.MODULE_ID", "FIELD_TYPE" => "string"),
"UNDO_TYPE" => array("FIELD_NAME" => "U.UNDO_TYPE", "FIELD_TYPE" => "string"),
"UNDO_HANDLER" => array("FIELD_NAME" => "U.UNDO_HANDLER", "FIELD_TYPE" => "string"),
"CONTENT" => array("FIELD_NAME" => "U.CONTENT", "FIELD_TYPE" => "string"),
"USER_ID" => array("FIELD_NAME" => "U.USER_ID", "FIELD_TYPE" => "int"),
"TIMESTAMP_X" => array("FIELD_NAME" => "U.TIMESTAMP_X", "FIELD_TYPE" => "int"),
);
$arSqlSearch = array();
if (is_array($arFilter))
{
foreach ($arFilter as $key => $val)
{
$n = mb_strtoupper($key);
if ($n == '%ID')
$arSqlSearch[] = "(U.ID like '".$DB->ForSql($val)."')";
elseif ($n == 'ID' || $n == 'USER_ID')
$arSqlSearch[] = GetFilterQuery("U.".$n, $val, 'N');
elseif (isset($arFields[$n]))
$arSqlSearch[] = GetFilterQuery($arFields[$n]["FIELD_NAME"], $val);
}
}
$strOrderBy = '';
foreach ($arOrder as $by => $order)
{
$by = mb_strtoupper($by);
if (isset($arFields[$by]))
{
$strOrderBy .= $arFields[$by]["FIELD_NAME"].' '.(mb_strtolower($order) == 'desc'? 'desc': 'asc').',';
}
}
if ($strOrderBy)
{
$strOrderBy = "ORDER BY ".rtrim($strOrderBy, ",");
}
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSql = "
SELECT
U.*
FROM
b_undo U
WHERE
$strSqlSearch
$strOrderBy";
$res = $DB->Query($strSql);
$arResult = array();
while ($arRes = $res->Fetch())
$arResult[] = $arRes;
return $arResult;
}