• Модуль: support
  • Путь к файлу: ~/bitrix/modules/support/classes/general/usertousergroup.php
  • Класс: CSupportUser2UserGroup
  • Вызов: CSupportUser2UserGroup::GetList
static function GetList($arOrder = array(), $arFilter = array())
{
	global $DB;
	$arFields = array(
		'GROUP_ID' => array(
			'TABLE_ALIAS' => 'UG',
			'FIELD_NAME' => 'UG.GROUP_ID',
			'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'USER_ID' => array(
			'TABLE_ALIAS' => 'UG',
			'FIELD_NAME' => 'UG.USER_ID',
			'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'CAN_VIEW_GROUP_MESSAGES' => array(
			'TABLE_ALIAS' => 'UG',
			'FIELD_NAME' => 'UG.CAN_VIEW_GROUP_MESSAGES',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'CAN_MAIL_GROUP_MESSAGES' => array(
			'TABLE_ALIAS' => 'UG',
			'FIELD_NAME' => 'UG.CAN_MAIL_GROUP_MESSAGES',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'CAN_MAIL_UPDATE_GROUP_MESSAGES' => array(
			'TABLE_ALIAS' => 'UG',
			'FIELD_NAME' => 'UG.CAN_MAIL_UPDATE_GROUP_MESSAGES',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'GROUP_NAME' => array(
			'TABLE_ALIAS' => 'G',
			'FIELD_NAME' => 'G.NAME',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'IS_TEAM_GROUP' => array(
			'TABLE_ALIAS' => 'G',
			'FIELD_NAME' => 'G.IS_TEAM_GROUP',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),

		'LOGIN' => array(
			'TABLE_ALIAS' => 'U',
			'FIELD_NAME' => 'U.LOGIN',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'FIRST_NAME' => array(
			'TABLE_ALIAS' => 'U',
			'FIELD_NAME' => 'U.NAME',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),
		'LAST_NAME' => array(
			'TABLE_ALIAS' => 'U',
			'FIELD_NAME' => 'U.LAST_NAME',
			'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
			'JOIN' => false,
		),

	);

	$strOrder = '';
	if (is_array($arOrder) && count($arOrder) > 0)
	{
		foreach ($arOrder as $k => $v)
		{
			if (array_key_exists($k, $arFields))
			{
				$v = mb_strtoupper($v);
				if($v != 'DESC')
				{
					$v  ='ASC';
				}
				if ($strOrder <> '')
				{
					$strOrder .= ', ';
				}
				$strOrder .= $arFields[$k]['FIELD_NAME'] . ' ' . $v;
			}
		}
	}

	$obQueryWhere = new CSQLWhere;
	$obQueryWhere->SetFields($arFields);

	$where = $obQueryWhere->GetQuery($arFilter);

	$strQuery = 'SELECT ' .
		'UG.GROUP_ID,
		UG.USER_ID,
		UG.CAN_VIEW_GROUP_MESSAGES,
		UG.CAN_MAIL_GROUP_MESSAGES,
		UG.CAN_MAIL_UPDATE_GROUP_MESSAGES as UG_CMUGM, '.
		'G.NAME GROUP_NAME, G.IS_TEAM_GROUP, '.
		'U.LOGIN, U.NAME FIRST_NAME, U.LAST_NAME ' .
		'FROM b_ticket_user_ugroup UG ' .
		'INNER JOIN b_ticket_ugroups G ON (UG.GROUP_ID=G.ID) ' .
		'INNER JOIN b_user U ON (UG.USER_ID=U.ID) ';

	if ($where <> '')
	{
		$strQuery .= ' WHERE ' . $where;
	}
	if ($strOrder <> '')
	{
		$strQuery .= ' ORDER BY ' . $strOrder;
	}

	$res = $DB->Query($strQuery, false, "File: ".__FILE__."
Line: ".__LINE__); $res->arReplacedAliases = array('UG_CMUGM' => 'CAN_MAIL_UPDATE_GROUP_MESSAGES'); return $res; }