• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/classes/general/event.php
  • Класс: CAllVoteEvent
  • Вызов: CAllVoteEvent::GetList
static function GetList($by = 's_id', $order = 'desc', $arFilter = [], $is_filtered = null, $get_user = "N")
{
	$err_mess = (self::err_mess())."
Function: GetList
Line: "; global $DB; $arSqlSearch = Array(); if (is_array($arFilter)) { $filter_keys = array_keys($arFilter); $count = count($filter_keys); for ($i=0; $i<$count; $i++) { $key = $filter_keys[$i]; $val = $arFilter[$filter_keys[$i]]; if(is_array($val)) { if(count($val) <= 0) continue; } else { if( ((string)$val == '') || ($val === "NOT_REF") ) continue; } $match_value_set = (in_array($key."_EXACT_MATCH", $filter_keys)) ? true : false; $key = strtoupper($key); switch($key) { case "ID": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("E.ID",$val,$match); break; case "VALID": $arSqlSearch[] = ($val=="Y") ? "E.VALID='Y'" : "E.VALID='N'"; break; case "DATE_1": $arSqlSearch[] = "E.DATE_VOTE>=".$DB->CharToDateFunction($val, "SHORT"); break; case "DATE_2": $arSqlSearch[] = "E.DATE_VOTE<=".$DB->CharToDateFunction($val." 23:59:59", "FULL"); break; case "VOTE_USER": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("E.VOTE_USER_ID",$val,$match); break; case "USER_ID": if ($get_user=="Y") { $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("U.AUTH_USER_ID",$val,$match); } break; case "SESSION": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("E.STAT_SESSION_ID",$val,$match); break; case "IP": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("E.IP",$val,$match,array(".")); break; case "VOTE": $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("E.VOTE_ID, V.TITLE",$val,$match); break; case "VOTE_ID": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("E.VOTE_ID",$val,$match); break; } } } if ($by == "s_id") $strSqlOrder = "ORDER BY E.ID"; elseif ($by == "s_valid") $strSqlOrder = "ORDER BY E.VALID"; elseif ($by == "s_date") $strSqlOrder = "ORDER BY E.DATE_VOTE"; elseif ($by == "s_session") $strSqlOrder = "ORDER BY E.STAT_SESSION_ID"; elseif ($by == "s_vote_user") $strSqlOrder = "ORDER BY E.VOTE_USER_ID"; elseif ($by == "s_vote") $strSqlOrder = "ORDER BY E.VOTE_ID"; elseif ($by == "s_ip") $strSqlOrder = "ORDER BY E.IP"; else { $strSqlOrder = "ORDER BY E.ID"; } if ($order != "asc") { $strSqlOrder .= " desc "; } if ($get_user=="Y") { $select = " , U.AUTH_USER_ID, U.STAT_GUEST_ID, A.NAME, A.LAST_NAME, A.SECOND_NAME, A.PERSONAL_PHOTO, A.LOGIN, ".$DB->Concat("A.LAST_NAME", "' '", "A.NAME")." AUTH_USER_NAME "; $from = " LEFT JOIN b_vote_user U ON (U.ID = E.VOTE_USER_ID) LEFT JOIN b_user A ON (A.ID = U.AUTH_USER_ID) "; } $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $strSql = " SELECT E.*, ".$DB->DateToCharFunction("E.DATE_VOTE")." DATE_VOTE, V.TITLE, V.DESCRIPTION, V.DESCRIPTION_TYPE $select FROM b_vote_event E INNER JOIN b_vote V ON (V.ID=E.VOTE_ID) $from WHERE $strSqlSearch $strSqlOrder "; $res = $DB->Query($strSql, false, $err_mess.__LINE__); return $res; }