Как использовать пагинацию на странице при выводе списка пользователей CUser::GetList

Шаг 1. Определение текущей страницы и количества элементов на странице

Для определения текущей страницы и количества элементов на странице можно использовать класс CPageNavi. Этот класс позволяет получить параметры текущей страницы и количество элементов на странице, указанных в параметрах URL. Вот как это можно сделать:

$pageNav = new \Bitrix\Main\UI\PageNavigation("users");
$pageNav->allowAllRecords(false)
        ->setPageSize($pageSize)
        ->initFromUri();

Где $pageSize - это количество элементов на странице, а "users" - это имя экземпляра класса CPageNavi.

Шаг 2. Установка ограничений на выборку пользователей из базы данных

Для установки ограничений на выборку пользователей из базы данных можно использовать параметры nPageSize и iNumPage метода CUser::GetList. Вот как это можно сделать:

$navParams = [
    "nPageSize" => $pageNav->getPageSize(),
    "iNumPage" => $pageNav->getCurrentPage(),
    "bShowAll" => false,
];

$userList = CUser::GetList($by, $order, [], $navParams);

Где $by и $order - это параметры сортировки пользователей.

Шаг 3. Создание объекта класса CPageNavi для отображения навигации по страницам

Для отображения навигации по страницам можно использовать метод CPageNavi::GetPageNavStringEx. Этот метод возвращает HTML-код навигации по страницам. Вот как это можно сделать:

$pageNavString = $pageNav->getPageNavStringEx(
    $navComponentObject,
    "",
    "",
    false
);

echo $pageNavString;

Где $navComponentObject - это объект компонента, вызывающего вывод списка пользователей. Если компонент не используется, можно передать значение null.

Полный пример кода

Полный пример кода для вывода списка пользователей с использованием пагинации выглядит следующим образом:

$pageNav = new \Bitrix\Main\UI\PageNavigation("users");
$pageNav->allowAllRecords(false)
        ->setPageSize($pageSize)
        ->initFromUri();

$navParams = [
    "nPageSize" => $pageNav->getPageSize(),
    "iNumPage" => $pageNav->getCurrentPage(),
    "bShowAll" => false,
];

$userList = CUser::GetList($by, $order, [], $navParams);

while ($user = $userList->fetch()) {
    // выводим список пользователей
}

$pageNavString = $pageNav->getPageNavStringEx(
    $navComponentObject,
    "",
    "",
    false
);

echo $pageNavString;

Где $by и $order - это параметры сортировки пользователей.

Заключение

В этой статье мы рассмотрели, как использовать пагинацию на странице при выводе списка пользователей с помощью метода CUser::GetList в CMS Bitrix. Надеемся, что это поможет улучшить опыт пользователей и повысить эффективность вашего сайта.

Коментарии

Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!

Написать коментарий