• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/discount/userconditioncontrol.php
  • Класс: BitrixMainDiscountUserConditionControl
  • Вызов: UserConditionControl::getControls
static function getControls($controlId = false)
{
	$controlList = array(
		self::ENTITY_USER_ID => array(
			'ID' => self::ENTITY_USER_ID,
			'EXECUTE_MODULE' => 'sale',
			'MODULE_ID' => 'main',
			'MODULE_ENTITY' => 'main',
			'ENTITY' => 'USER',
			'FIELD' => 'USER_ID',
			'FIELD_TYPE' => 'int',
			'MULTIPLE' => 'N',
			'GROUP' => 'N',
			'LABEL' => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_ID'),
			'PREFIX' => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_PREFIX'),
			'LOGIC' => static::getLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ)),
			'JS_VALUE' => array(
				'type' => 'userPopup',
				'popup_url' => self::getAdminSection().'user_search.php',
				'popup_params' => array(
					'lang' => LANGUAGE_ID,
				),
				'param_id' => 'n',
				'show_value' => 'Y',
				'user_load_url' => '/bitrix/admin/sale_discount_edit.php?lang=' . LANGUAGE_ID,
				'coreUserInfo' => 'Y',
			),
			'PHP_VALUE' => array(
				'VALIDATE' => 'user'
			)
		),
	);

	if (!MainModuleManager::isModuleInstalled('bitrix24'))
	{
		$labels = array(
			BT_COND_LOGIC_EQ => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_GROUP_EQ'),
			BT_COND_LOGIC_NOT_EQ => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_GROUP_NOT_EQ'),
		);

		$userGroups = array();
		$iterator = MainGroupTable::getList(array(
			'select' => array('ID', 'NAME', 'C_SORT'),
			'order' => array('C_SORT' => 'ASC', 'NAME' => 'ASC')
		));
		while ($row = $iterator->fetch())
			$userGroups[$row['ID']] = $row['NAME'];
		unset($row, $iterator);
		$controlList[self::ENTITY_USER_GROUP_ID] = array(
			'ID' => self::ENTITY_USER_GROUP_ID,
			'EXECUTE_MODULE' => 'all',
			'MODULE_ID' => 'main',
			'MODULE_ENTITY' => 'main',
			'ENTITY' => 'USER_GROUPS',
			'FIELD' => 'USER_GROUPS',
			'FIELD_TYPE' => 'int',
			'MULTIPLE' => 'Y',
			'GROUP' => 'N',
			'LABEL' => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_GROUP_ID'),
			'PREFIX' => Loc::getMessage('SALE_USER_CONDITION_CONTROL_FIELD_USER_GROUP_PREFIX'),
			'LOGIC' => static::getLogicEx(array_keys($labels), $labels),
			'JS_VALUE' => array(
				'type' => 'select',
				'multiple' => 'Y',
				'values' => $userGroups,
				'show_value' => 'Y'
			),
			'PHP_VALUE' => array(
				'VALIDATE' => 'list'
			)
		);
		unset($userGroups, $labels);
	}

	return static::searchControl($controlList, $controlId);
}