Добавляем кнопку в админке битрикса.
Как добавить кнопку Авторизации в Битриксе на D7?
До обновлений, была актуальна задача, добавить администраторам функционал авторизации за любого пользователя.
Зачем это нужно? Например, можно посмотреть всю историю заказов, а также протестировать доступы для контент-менеджера. Делалось это так:
Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'OnAdminContextMenuShow', function(&$arItems) { $request = Bitrix\Main\Context::getCurrent()->getRequest(); $userId = intval($request->getQuery('ID')); if($request->getRequestedPage() === '/bitrix/admin/user_edit.php' && $userId > 0) { $arAuthBtn = array( "TEXT" => "Авторизоваться", "LINK" => "/bitrix/admin/user_admin.php?ID=$userId&action=authorize&sessid=".bitrix_sessid(), "ICON" => "", "TITLE" => "Авторизоваться под текущим пользователем" ); $arItems[] = $arAuthBtn; } });
Данный код добавляли в init.php. Однако сейчас эта кнопка есть “из коробки”. Из примера выше, видно, как мы добавляем кнопку на странице /bitrix/admin/user_edit.php, и если есть параметр $userId.
А дальше всё просто TEXT, LINK, ICON, TITLE
Вы можете добавить свои собственные кнопки в админке Битрикса со своей логикой:
Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'OnAdminContextMenuShow', function(&$arItems) { $request = Bitrix\Main\Context::getCurrent()->getRequest(); $userId = intval($request->getQuery('ID')); if($request->getRequestedPage() === '/bitrix/admin/user_edit.php' && $userId > 0) { $arAuthBtn = array( "TEXT" => "Искать в Гугле", "LINK" => "https://www.google.com/search?client=firefox-b-d&q=".$userId, "ICON" => "btn_delete", "TITLE" => "Поиск" ); $arItems[] = $arAuthBtn; } });
Данный код ищет в гугле userId. Согласен, пример так себе 🙂 Но, вы можете по айди пользователя вытащить имя и фамилию. А вот “ICON” => “btn_delete” – добавит нашей кнопке id=”btn-delete”, к которой можно добавить иконку.