Задать вопрос
@jasper-blondin

Как открыть всплывающее окно Битрикс с формой редактирования?

Создана административная страничка, которая редактирует данные строки в кастомной таблице БД. Структура страницы стандартная:
- prolog_admin_before.php
- обработка данных запроса
- prolog_admin_after.php
- вывод формы через CAdminForm
- epilog_admin.php

В админке страница открывает без проблем, форма работает должным образом. Однако задача состоит в том, чтобы открывать эту форму в публичной части (в Режиме правки) во всплывающем окне (по аналогии с формой редактирования элемента инфоблока, к примеру). Для этого реализовано следующее:
- создан компонент, который выводит данные из таблицы БД по ID строки
- в классе компонента используется метод $this->AddIncludeAreaIcons(), куда передается массив с ключом URL, содержащим ссылку на административную страницу
- в параметрах ссылки добавлено bxpublic=Y

Итог. В режиме правки возле компонента появляется кнопка, по нажатию на которую открывается всплывающее окно с формой (страницей) из админки. Данные можно редактировать, сохранять изменения -- все работает отлично. Но есть пара нюансов:
- форма (страница) выводится некорректно во всплывающем окне (криво)
- во всплывающем окне нет скрола (большая форма попросту обрезается)

Т.е. очевидно, что нужно доработать каким-то образом административную страницу, чтобы она корректно отображалась во всплывающем окне в публичной части.
У кого есть опыт создания подобных всплывающих окон в публичной части? Подскажите, как правильно выводить в них административные страницы?
  • Вопрос задан
  • 19 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@jasper-blondin Автор вопроса
Возможно, стоило смотреть не на код административной страницы, а на код формирования кнопок панели редактирования.
В моем случае для формирования ссылки на попап использовался метод:
$popupLink = $GLOBALS["APPLICATION"]->GetPopupLink([
	'URL' => $editUrl,
	'PARAMS' => [
		'width' => 800,
		'height' => 500,
		'resize' => true,
		'dialog_type' => 'EDITOR'
	]
]);

Как только я заменил значение параметра dialog_type на ADMIN -- окно начало открываться корректно. На первый взгляд все работает отлично.
Спасибо koder_1 за непроизвольную подсказку, которая заставила меня посмотреть на проблему шире ))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы