GetList
Описание
CDBResult CUser::GetList( mixed &by = "timestamp_x", string &order = "desc", array filter = array(), array arParams=array() )
Возвращает список пользователей в виде объекта класса CDBResult. Статический метод.
Смотрите также
Параметры
Параметр | Описание | С версии | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
by | ссылка на переменную с полем для сортировки, может принимать значения:
Начиная с версии ядра 11.0.13 в параметре можно передавать массив вида array("field1"=>"asc", "field2"=>"desc") для множественной сортировки. Значения ключей массива совпадают с перечисленными выше. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
оrder | Ссылка на переменную с порядком сортировки, может принимать значения:
При использовании массива в параметре by данный параметр игнорируется. Значения c nulls не работают, например: desc,nulls. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filter | Массив для фильтрации пользователей. (Типы фильтрации) В массиве допустимы следующие индексы:
* - поиск по "KEYWORDS" по сути является поиском по полям отмеченных символом "*" В фильтре можно использовать и пользовательские поля, типа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
arParameters | Массив с дополнительными параметрами метода. Может содержать ключи:
SELECT - массив с идентификаторами пользовательских полей для их выборки в результат, например array("UF_TEXT_1", "UF_STRUCTURE"). Для указания выборки всех полей используйте маску: array("UF_*"). NAV_PARAMS - массив с параметрами навигации, может использоваться для ограничения размера выборки. Например: array("nPageSize"=>"20"). При указании NAV_PARAMS строится ограниченный по размеру список результатов, учитывающий номер страницы в постраничной навигации (для mysql выборка производится с указанием limit). С версии ядра 11.0.14 в массиве можно указать параметр "nTopCount" для ограничения выборки по количеству записей. FIELDS (с версии ядра 11.0.13) - массив с идентификаторами полей для выборки. Если не указан или пустой, то выбираются все поля. Возможные значения:
| 6.0.2 |
Примеры использования
<? $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."<br>"; endwhile; ?>
Пример нерабочего вызова, так как оба параметра передаются по значению:
$rsUsers = CUser::GetList(array('sort' => 'asc'), 'sort');
Пример рабочего вызова:
$order = array('sort' => 'asc'); $tmp = 'sort'; // параметр проигнорируется методом, но обязан быть $rsUsers = CUser::GetList($order, $tmp);
Для фильтрации пользователей с незаполненным полем Город (для других текстовых полей - аналогично):
$filter = array("PERSONAL_CITY" => " ~_% ");
Сообщение не промодерировано, возможны ошибки и неточности.
|
||||||||
В документации устаревшее:
Актуальное определение в версии 24.200.100
$by и $order не по ссылке, arFilter вместо filter При использовании записи PHP8 с перечислением параметров по имени: "filter" работать не будет
| ||||||||
Сообщение не промодерировано, возможны ошибки и неточности.
|
||||
Выбираем поочередно активных пользователей, у которых поле "UF_DEPARTMENT" не пустое (пользовательское свойство - массив):
На выходе получаем массив вида:
| ||||
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
| ||
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.