Выводить данные в админке (CAdminList)

Сначала надо сделать выборку данных.

# 1-ый способ (через инфоблоки)
$res = CIBlockElement::GetList([], ['IBLOCK_ID' => 1]);

# 2-ой способ, пользовательская таблица
$res = $DB->Query('SELECT id,title FROM table_name');

Затем можно сгенерировать и вывести таблицу с данными через объект CAdminList().

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

$table_id = "table_id"; // ид таблицы
$lAdmin = new CAdminList($table_id);

// Какие поля выводить
$lAdmin->AddHeaders([
    ['id' => 'id',    'content' => 'ИД', 'default' => true],
    ['id' => 'title', 'content' => 'Имя', 'default' => true],
]);

$data = new CAdminResult($res, $table_id);

while ($element = $data->NavNext(true, "f_")) {
    // создание строки (экземпляра класса CAdminListRow)
    $lAdmin->AddRow($element['id'], $element);
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");



// Вывод данных
$lAdmin->DisplayList();

В переменной $table_id указывается ИД таблицы, с помощью которой можно будет обновлять таблицу (сортировка, фильтр) через Ajax.

В результате на странице сгенерируется таблица с данными.

Bitrix. CAdminList

Оформить поле

Оформить поле можно через метод $row->AddViewField().

while ($element = $data->NavNext(true, "f_")) {
    $row = $lAdmin->AddRow($element['id'], $element);

    $row->AddViewField('title', '<a href="custom_edit.php?ID='.$element['id'].'&lang='.LANG.'">'.$element['title'].'</a>');
}

В результате поле «title» будет выводиться в виде ссылки:

Bitrix. AddViewField

Постраничная навигация

По умолчанию, выводятся все данные. Чтобы выводить данные по страницам, надо добавить код ниже:

$res->NavStart();
$lAdmin->NavText($res->GetNavPrint('Страница'));

В результате под таблицей будет выводиться постраничная навигация.

Bitrix. CAdminList