Битрикс – как добавить кнопку на странице пользователя

Добавляем кнопку в админке битрикса.

Как добавить кнопку Авторизации в Битриксе на 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”, к которой можно добавить иконку.

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *