Новая вкеладка в редакторе элемента 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 не будет опубликован. Обязательные поля помечены *