• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/classes/general/question.php
  • Класс: CAllVoteQuestion
  • Вызов: CAllVoteQuestion::GetList
static function GetList($VOTE_ID, $by = 's_c_sort', $order = 'asc', $arFilter = [])
{
	global $DB;
	$err_mess = (CAllVoteQuestion::err_mess()).'
Function: GetList
Line: '; $VOTE_ID = (int) $VOTE_ID; $arSqlSearch = []; $arFilter = (is_array($arFilter) ? $arFilter : []); foreach ($arFilter as $key => $val) { if (empty($key) || empty($val) || $val === 'NOT_REF') { continue; } $key_res = VoteGetFilterOperation($key); $strNegative = $key_res['NEGATIVE']; $strOperation = $key_res['OPERATION']; $key = strtoupper($key_res['FIELD']); switch($key) { case 'ID': $match = (($arFilter[$key . '_EXACT_MATCH'] ?? 'Y') === 'N' ? 'Y' : 'N'); //turn off $arSqlSearch[] = GetFilterQuery('Q.ID', $val, $match); break; case 'DIAGRAM': case 'ACTIVE': case 'REQUIRED': $arSqlSearch[] = ($strNegative === 'Y' ? ' Q.' . $key . ' IS NULL OR NOT ' : '') . ' (Q.' . $key . ' ' . $strOperation . ' '' . $DB->ForSql($val) . '')'; break; case 'QUESTION': $match = (($arFilter[$key . '_EXACT_MATCH'] ?? 'Y') !== 'N' ? 'Y' : 'N'); //turn on $arSqlSearch[] = GetFilterQuery('Q.QUESTION', $val, $match); break; } } if ($VOTE_ID > 0) $arSqlSearch[] = 'Q.VOTE_ID = ' . $VOTE_ID; // Order $by = strtoupper(strpos($by, 's_') === 0 ? substr($by, 2) : $by); $by = in_array($by, ['ID', 'TIMESTAMP_X', 'ACTIVE', 'DIAGRAM', 'C_SORT', 'REQUIRED']) ? $by : 'C_SORT'; $order = ($order !== 'desc' ? 'asc' : 'desc'); $strSqlOrder = 'Q.' . $by . ' ' . $order; // Sql $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $strSql = ' SELECT Q.*, ' . $DB->DateToCharFunction('Q.TIMESTAMP_X','SHORT') . ' TIMESTAMP_X FROM b_vote_question Q WHERE ' . $strSqlSearch . ' ORDER BY ' . $strSqlOrder; $res = $DB->Query($strSql, false, $err_mess . __LINE__); return $res; }