Новая вкеладка в редакторе элемента bitrix

Bitrix – добавить вкладку в редактор элемента инфоблока 2

Что бы на сайте под управлением CMS Bitrix добавить свою вкладку в редактор элемента инфоблока достаточно сделать несколько не сложных действий. Ниже будет показан пример с добавлением вкладки с историей изменения цены товара.

Результат всех проделанных действий – будет скриншот из этой записи.

Итак, что нужно:

  • Повесить свой обработчик на событие Bitrix(который отрисует нашу вкладку)
  • Сделать обработчик + шаблон html с выводимой вкладкой и информацией в этой вкладке

Для работы с административной частью Bitrix, так же и для создания административных страниц Bitrix, есть специальное (достаточно запутанное) API. Собственно если понять это API можно создавать “годные” страницы для административных нужд, если вы уже делаете страницы администратора для Bitrix  – то понять код ниже вам не составит труда.

Вешаем наш обработчик на событие Bitrix в файл init.php (/bitrix/php_interface/init.php)

Что здесь происходит:

  1. Подключаем файл обработчика (расположение выбираете на свой вкус, здесь указан лишь пример)
  2. Регистрируете обработчик который будет выполняться при возникновении события OnAdminIBlockElementEdit

Само событие OnAdminIBlockElementEdit  возникает в недрах Bitrix в файле /bitrix/modules/iblock/admin/iblock_element_edit.php строка 521

Описываем наш обработчик в виде PHP Класса

Что здесь происходит:

  1. Ну вопервых это метод “onInit”. Он отвечает за овтвет на событие на которое мы “подписались”  выше. Главное что бы этот метод вернул специальный массив в с ключами и функциями обратного вызова, которые отвечают за действия.
  2. Метод “tabs” описывает вкладку(вкладки) которые нужно добавить. Массив многомерный.
  3. Метод “showtab” – шаблон вывода вкладок. В данном случае это одна вкладка которая выводит табличные данные от стороннего модуля. Главное что бы html не сломался, ваш шабло нужно обернуть в <tr><td>ТУТ_ВАШ_ШАБЛОН</tr></td>
  4. Метод getProductPriceHistory – это обычный запрос к БД по D7 который вернёт необходимы нам данные. Данные мы получаем отдельным способом.

В целом простой и понятный способ как можно отобразить дополнительную информацию в административной панели на сайте под управлением CMS Bitrix.

2 Comments

  1. Вот только вставить на такую вкладку таблицу, используя CAdminList множно, но при попытке сортировать или производить любые другие интерактивные действия вроде постраничной навигации – ломается верстка. То же самое и с bitrix:main.ui.grid
    Увы, пока не нашел решения как вставить полноценную коробочную таблицу именно во вкладку.

    Александр
    1. Вёрстка не ломается и можно спокойно фильтровать, сортировать и использовать постраничную навигацию.
      Пример с пагинацией

      https://youtu.be/FWgZWIcfQNY

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *