- Модуль: statistic
- Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/stateventtype.php
- Класс: CStatEventType
- Вызов: CStatEventType::GetSimpleList
static function GetSimpleList($by = 's_event1', $order = 'asc', $arFilter = [])
{
$err_mess = "File: ".__FILE__."
Line: ";
$DB = CDatabase::GetModuleConnection('statistic');
$arSqlSearch = Array();
if (is_array($arFilter))
{
foreach ($arFilter as $key => $val)
{
if(is_array($val))
{
if(count($val) <= 0)
continue;
}
else
{
if( ((string)$val == '') || ($val === "NOT_REF") )
continue;
}
$match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
$key = strtoupper($key);
switch($key)
{
case "ID":
$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
$arSqlSearch[] = GetFilterQuery("E.".$key, $val, $match);
break;
case "EVENT1":
case "EVENT2":
case "NAME":
case "DESCRIPTION":
$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
$arSqlSearch[] = GetFilterQuery("E.".$key, $val, $match);
break;
case "KEYWORDS":
$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
$arSqlSearch[] = GetFilterQuery("E.EVENT1, E.EVENT2, E.DESCRIPTION, E.NAME",$val, $match);
break;
}
}
}
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$order = ($order != "desc" ? "asc" : "desc");
if ($by == "s_id")
$strSqlOrder = "ORDER BY E.ID ".$order;
elseif ($by == "s_event1")
$strSqlOrder = "ORDER BY E.EVENT1 ".$order.", E.EVENT2";
elseif ($by == "s_event2")
$strSqlOrder = "ORDER BY E.EVENT2 ".$order;
elseif ($by == "s_name")
$strSqlOrder = "ORDER BY E.NAME ".$order;
elseif ($by == "s_description")
$strSqlOrder = "ORDER BY E.DESCRIPTION ".$order;
else
{
$strSqlOrder = "ORDER BY E.EVENT1 ".$order.", E.EVENT2";
}
$strSql = "
SELECT
E.ID, E.EVENT1, E.EVENT2, E.NAME, E.DESCRIPTION,
if (length(E.NAME)>0, E.NAME,
concat(ifnull(E.EVENT1,''),' / ',ifnull(E.EVENT2,''))) EVENT
FROM
b_stat_event E
WHERE
$strSqlSearch
$strSqlOrder
LIMIT ".intval(COption::GetOptionString('statistic','RECORDS_LIMIT'))."
";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
return $res;
}