Документация для разработчиков
Темная тема

Открыть компонент в слайдере

Когда необходимо открыть страницу внутри слайдера без iframe, то можно сделать так:

BX.SidePanel.Instance.open("widget:example-item", {
	contentCallback: function (slider) {
		return new Promise(function(resolve, reject) {
			BX.ajax.runAction('example.item.view', {
				data: {
					id: 2208
				}
			}).then(function(response) {
				resolve({ html: response.data.html });
			});
		});
	},
	animationDuration: 100,
	width: 370
});

Обратите внимание, что действие example.item.view, должно возвращать тип ответа \Bitrix\Main\Engine\Response\Component.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Андрей Чурсин
Сообщение не промодерировано, возможны ошибки и неточности.
Если в слайдере нужно открыть компонент-результат контроллера - нужно выпечатывать результат работы компонента
Код
 public function openFormAction(string $formId): HttpResponse
    {
        $content = $GLOBALS['APPLICATION']->includeComponent(
            'bitrix:ui.sidepanel.wrapper',
            '',
            [
                'POPUP_COMPONENT_NAME' => 'bitrix:form.new.result',
                'POPUP_COMPONENT_TEMPLATE_NAME' => '',
                'POPUP_COMPONENT_PARAMS' => [
                    ...
                ],
                'USE_UI_TOOLBAR' => 'Y',
                'RETURN_CONTENT' => true,
                'IFRAME_MODE' => true,
                'USE_PADDING' => true,
                'RELOAD_PAGE_AFTER_SAVE' => true,
                'CLOSE_AFTER_SAVE' => true,
            ]
        );
        $response = new HttpResponse();
        $response->setContent($content);
        return $response;
    }

 
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх