CDBResult CUser::GetList( string &by = "timestamp_x", string &order = "desc", array filter = array(), array arParams=array() )
Возвращает список пользователей в виде объекта класса CDBResult.
Параметры функции
| Параметр |
Описание |
| by |
ссылка на переменную с полем для сортировки, может принимать значения:
- id - ID пользователя
- active - активность
- last_login - дата последней авторизации
- login - имя входа
- email - E-Mail адрес
- name - имя
- last_name - фамилия
- timestamp_x - дата изменения
- date_register - дата регистрации
- personal_profession - профессия
- personal_www - WWW-страница
- personal_icq - номер ICQ
- personal_gender - пол ("M" - мужской; "F" - женский)
- personal_birthday - день рождения
- personal_photo - ID файла-фотографии
- personal_phone - номер телефона
- personal_fax - номер факса
- personal_mobile - номер мобильного
- personal_pager - номер пейджера
- personal_street - улица
- personal_mailbox - почтовый ящик
- personal_city - город
- personal_state - область / край
- personal_zip - почтовый индекс
- personal_country - код страны
- personal_notes - дополнительные заметки
- work_company - наименования компании
- work_department - отдел
- work_position - должность
- work_www - WWW-страница компании
- work_phone - рабочий телефон
- work_fax - рабочий факс
- work_pager - рабочий пейджер
- work_street - улица компании
- work_mailbox - почтовый ящик компании
- work_city - город компании
- work_state - область / край компании
- work_zip - почтовый индекс компании
- work_country - код страны компании
- work_profile - направление деятельности компании
- work_notes - дополнительные заметки касаемо места работы
- admin_notes - комментарий администратора
|
| оrder |
Ссылка на переменную с порядком сортировки
может принимать значения
- asc - по возрастанию
- desc - по убыванию
|
| filter |
Массив для фильтрации пользователей. В массиве допустимы следующие индексы:
- 1ID - по ID пользователя
- TIMESTAMP_1 - дата изменения профайла пользователя "с"
- TIMESTAMP_2 - дата изменения профайла пользователя "по"
- LAST_LOGIN_1 - дата последнего логина пользователя "с"
- LAST_LOGIN_2 - дата последнего логина пользователя "по"
- LAST_ACTIVITY - интервал в секундах
- ACTIVE - фильтр по активности (Y|N)
- 1LOGIN_EQUAL - по имени входа (ищет прямое совпадение с логином)
- 1LOGIN - по имени входа (ищет подстроку в логине)
- 1NAME - по имени и фамилии
- 1EMAIL - по E-Mail адресу
- 1COUNTRY_ID - по коду страны
- GROUPS_ID - по группам (массив с кодами групп пользователей)
- PERSONAL_BIRTHDAY_1 - день рождения "с"
- PERSONAL_BIRTHDAY_2 - день рождения "по"
- 1KEYWORDS - по нижеследующим полям профайла помеченных символом - *
- 1* PERSONAL_PROFESSION - профессия
- 1* PERSONAL_WWW - WWW-страница
- 1* PERSONAL_ICQ - номер ICQ
- 1* PERSONAL_GENDER - пол ("M" - мужской; "F" - женский)
- 1* PERSONAL_PHOTO - ID файла - фотографии (таблица b_file)
- 1* PERSONAL_PHONE - номер телефона
- 1* PERSONAL_FAX - номер факса
- 1* PERSONAL_MOBILE - номер мобильного
- 1* PERSONAL_PAGER - номер пейджера
- 1* PERSONAL_STREET - улица
- 1* PERSONAL_MAILBOX - почтовый ящик
- 1* PERSONAL_CITY - город
- 1* PERSONAL_STATE - область / край
- 1* PERSONAL_ZIP - почтовый индекс
- 1* PERSONAL_COUNTRY - код страны (хранится в файлах \bitrix\modules\main\lang\ru\tools.php, \bitrix\modules\main\lang\en\tools.php)
- 1* PERSONAL_NOTES - дополнительные заметки
- 1* WORK_COMPANY - наименования компании
- 1* WORK_DEPARTMENT - отдел
- 1* WORK_POSITION - должность
- 1* WORK_WWW - WWW-страница компании
- 1* WORK_PHONE - рабочий телефон
- 1* WORK_FAX - рабочий факс
- 1* WORK_PAGER - рабочий пейджер
- 1* WORK_STREET - улица компании
- 1* WORK_MAILBOX - почтовый ящик компании
- 1* WORK_CITY - город компании
- 1* WORK_STATE - область / край компании
- 1* WORK_ZIP - почтовый индекс компании
- 1* WORK_COUNTRY - код страны компании (хранится в файлах \bitrix\modules\main\lang\ru\tools.php, \bitrix\modules\main\lang\en\tools.php)
- 1* WORK_PROFILE - направление деятельности компании
- 1* WORK_NOTES - дополнительные заметки касаемо места работы
- 1* ADMIN_NOTES - комментарий администратора (доступен для просмотра и редактирования только администратору сайта)
1 - в данных полях допускается сложная логика
* - поиск по "KEYWORDS" по сути является поиском по полям отмеченных символом "*" |
| arParameters |
Массив с дополнительными параметрами функции. Может содержать ключи:
SELECT - массив с идентификаторами пользовательских полей для их выборки в результат, например array("UF_TEXT_1", "UF_STRUCTURE"). Для указания выборки всех полей используйте маску: array("UF_*").
NAV_PARAMS - массив с параметрами навигации, может использоваться для ограничения размера выборки. Например: array("nPageSize"=>"20"). При указании NAV_PARAMS строится ограниченный по размеру список результатов, учитывающий номер страницы в постраничной навигации (для mysql выборка производится с указанием limit). |
Примеры использования
$filter = Array ( "ID" => "1 | 2", "TIMESTAMP_1" => "04.02.2004", // в формате текущего сайта "TIMESTAMP_2" => "04.02.2005", "LAST_LOGIN_1" => "01.02.2004", "ACTIVE" => "Y", "LOGIN" => "nessy | admin", "NAME" => "Виталий & Соколов", "EMAIL" => "mail@server.com | mail@server.com", "KEYWORDS" => "www.bitrix.ru", "PERSONAL_PROFESSION" => "системотехник", "PERSONAL_GENDER" => "M", "PERSONAL_COUNTRY" => "4 | 1", // Беларусь или Россия "ADMIN_NOTES" => "\"UID = 145\"", "GROUPS_ID" => Array(1,4,10) ); $rsUsers = CUser::GetList(($by="personal_country"), ($order="desc"), $filter); // выбираем пользователей $is_filtered = $rsUsers->is_filtered; // отфильтрована ли выборка ? $rsUsers->NavStart(50); // разбиваем постранично по 50 записей echo $rsUsers->NavPrint(GetMessage("PAGES")); // печатаем постраничную навигацию while($rsUsers->NavNext(true, "f_")) : echo "[".$f_ID."] (".$f_LOGIN.") ".$f_NAME." ".$f_LAST_NAME." "; endwhile; ?>
Выводим дополнительные пользовательские поля:
$rsUser = CUser::GetList(($by="ID"), ($order="desc"), array("ID"=>$USER_ID),array("SELECT"=>array("UF_*")));
Фильтр по пользовательскому полю:
$filter = Array
("UF_HOME" => "1",);
$rsUsers = CUser::GetList(($by="LAST_NAME"), ($order="asc"), $filter); // выбираем пользователей
while($rsUsers->NavNext(true, "f_")) :
print_r ($rsUser)
?>
Источник: http://dev.1c-bitrix.ru/api_help/main/reference/cuser/getlist.php |