Задать вопрос
@venom1996

Как вывести popup окно стандартной bx библиотекой в карточке лида?

<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
CJSCore::Init(['popup']);
?>
<a href="#" id="element">Ссылка</a>
<script>
    // BX.element - элемент, к которому будет привязано окно, если null – окно появится по центру экрана

    BX.ready(function () {
        var popup = BX.PopupWindowManager.create("popup-message", BX('element'), {
            content: 'Контент, отображаемый в теле окна',
            width: 400, // ширина окна
            height: 100, // высота окна
            zIndex: 100, // z-index
            closeIcon: {
                // объект со стилями для иконки закрытия, при null - иконки не будет
                opacity: 1
            },
            titleBar: 'Заголовок окна',
            closeByEsc: true, // закрытие окна по esc
            darkMode: false, // окно будет светлым или темным
            autoHide: false, // закрытие при клике вне окна
            draggable: true, // можно двигать или нет
            resizable: true, // можно ресайзить
            min_height: 100, // минимальная высота окна
            min_width: 100, // минимальная ширина окна
            lightShadow: true, // использовать светлую тень у окна
            angle: true, // появится уголок
            overlay: {
                // объект со стилями фона
                backgroundColor: 'black',
                opacity: 500
            },
            buttons: [
                new BX.PopupWindowButton({
                    text: 'Сохранить', // текст кнопки
                    id: 'save-btn', // идентификатор
                    className: 'ui-btn ui-btn-success', // доп. классы
                    events: {
                        click: function() {
                            // Событие при клике на кнопку
                        }
                    }
                }),
                new BX.PopupWindowButton({
                    text: 'Копировать',
                    id: 'copy-btn',
                    className: 'ui-btn ui-btn-primary',
                    events: {
                        click: function() {

                        }
                    }
                })
            ],
            events: {
                onPopupShow: function() {
                    // Событие при показе окна
                },
                onPopupClose: function() {
                    // Событие при закрытии окна
                }
            }
        });

        popup.show();
    });
</script>

нашел такой код, мне нужно что бы при открытии карточки появлялось popup окно, я так понимаю что нужно вставить код в сам шаблон, вопрос где его найти ?
  • Вопрос задан
  • 3282 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
сам шаблон, вопрос где его найти ?


Любая подобная модификация является изменением функциональной части системы, т.е. при любом обновлении необходимо будет проверять не сломалось ли чего.

Как можно притворить это решение в жизнь?

1) Кастомизировать шаблон компонента bitrix:crm.lead и поместить код в details.php
Плюсы:
- Мнимальное изменение
- Шаблон меняется очень редко

Минусы:
- Придется поддерживать до конца проекта при любом обновлении

2) Кастомизировать шаблон компонента bitrix:crm.lead.details

Плюсы:
- Незначительное изменение
- Частично можно опираться на поля лида

Минусы:
- Придется поддерживать до конца проекта при любом обновлении

3) Делать это через JS.
На событии эпилога подключать библиотеку, которая будет проверять нужную страницу и выводить popup

Плюсы:
- Не влияет на обновления

Минусы:
- Не просто в разработке (требует глубоких знаний платформы)
- Будет сложнее поддерживать, если битрикс будет менять апи/чпу

Документации по всем 3 способам в интернете не найти.
Ответ написан
IgorVader
@IgorVader
  1. Проверка url
  2. Подключить js скрипт


и в js встраиваете нужные кнопки и события
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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