Битрикс список элементов инфоблока в панели администрирования, добавить команду в меню действий

Версия 1С-Битрикс: Управление сайтом 21.300.0

В списке элементов инфоблока в панели администрирования есть меню действий. В нём выводится список команд, которые можно выполнить над одним элементом.

На изображении ниже (взято из публичного курса "Контент-менеджер") колонка с меню действий выделена цифрой 4.

Список элементов инфоблока

Подскажите как штатными средствами (например, через API) добавить в меню собственную команду?


Ответы (1 шт):

Автор решения: userlond

В файл init.php (рекомендуется /local/php_interface/init.php) добавить код:

<?php
AddEventHandler('main', 'OnAdminListDisplay', function (&$list) {
    $request = Application::getInstance()->getContext()->getRequest();
    $uri = new Uri($request->getRequestUri());

    parse_str($uri->getQuery(), $params);
    $currentIblockId = $params['IBLOCK_ID'] ?: null;

    // опционально: ограничение, для элементов каких инфоблоков добавляем действие
    /*if ($currentIblockId != <id_инфоблока>) {
        return;
    }*/

    /** @var \CAdminUiListRow[] $rows */
    $rows = $list->aRows;
    foreach ($rows as $row) {
        $row->aActions[] = [
            'TEXT' => 'Ракета',
            'TITLE' => 'Отправить ракету',
            'ACTION' => /** @lang JavaScript */ <<<__js
                if (confirm('Вы действительно хотите отправить ракету?')) {
                    alert('Ракета отправлена!');
                }
            __js,
        ];
    }
});

В итоге в меню действий будет добавлено действие "Ракета", с простым JavaScript-обработчиком.

→ Ссылка