Как вставить блок по ID в pop-up окно?

В общем здесь:
https://www.cs-cart.ru/docs/4.2.x/developer/instruments/templates/popup.html
решение нет, или я что то не так понимаю. Вообще есть такая возможность, чтобы при открытии pop-up окна, в нём было содержимое определённого блока, и ещё блок сам по себе неактивен.

1 лайк

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

Не совсем понял. У меня в макете есть HTML блок, он выключен. Как в pop-up его вывести?

{render_block block_id=30 dispatch="products.view" use_cache=false parse_js=false}
Где 30 - id блока
dispatch не обязательно указывать

1 лайк

У нас есть бесплатный модуль Всплывающая Оболочка

https://www.ecom-labs.ru/cs-cart-multi-vendor-moduli/cs-cart-modul-pop-up-wrapper.html

Каждый блок можно засунуть во всплывающее окно с задержкой открытия

А если мне нужно повесить попап на кнопку и в него всунуть блок с моим кодом, который отправит данные из форму на мой обработчик по ajax?

Вешайте и отправляейте по аякс.

На что именно вешать? На класс что ли?

Как выше писали, попробуйте

{capture name="my_popup"}
    {render_block block_id=30 dispatch="products.view" use_cache=false parse_js=false}
{/capture}
{include file="common/popupbox.tpl" content=$smarty.capture.my_popup id="my_popup" text=__('my_popup_header') link_text=__('my_popup_link')}

(!) Не тестировано

К сожалению в том и другом случае форма обрабатывает без проверки на обязательные поля
как бы это исправить/учесть

пример 1

{capture name="my_popup"}
    {render_block block_id=1 dispatch="products.view" use_cache=true parse_js=true}
{/capture}
{include file="common/popupbox.tpl" content=$smarty.capture.my_popup id="my_popup" text=__('Форма') link_text=__('Кнопка') class="cm-dialog-auto-size ty-btn ty-cr-product-button"}

пример 2

<a class="cm-dialog-opener cm-dialog-auto-size cm-dialog-auto-size ty-btn ty-cr-product-button ty-btn__secondary" href="{"pages.view?page_id=1"|fn_url}" data-ca-target-id="open_id_ajax" >Кнопка</a>
<div id="open_id_ajax" class="hidden"  title="Форма"></div>

В консоли разработчика посмотрите. Возможно, js ошибки какие-то есть

Да, уже ок, после очистки кеша магазина и браузерного. Спасибо

Жаль только форма не передает инфо с какой страницы отправлено