Всем привет.
Я только начинаю погружаться в программирование, до этого занимался исключительно вёрсткой.
Сейчас работаю в компании, и по работе нужно переносить сайт на другой движок.
Проанализировав различные CMS, остановил свой выбор на Yupe.
Основной причиной выбора было то, что компании нужен сайт с некоторыми функциями интернет-магазина, а в Yupe многие решения реализованы из коробки.
Теперь к проблеме (точнее, задаче)
Цены на продукцию зависят от многих параметров, поэтому вместо фиксированной цены и кнопки купить на текущем сайте реализована кнопка "Узнать цену", при нажатии на которую открывается модальное окно, содержащее расширенную форму обратной связи (чекбоксы с опциями, поля для ввода контактных данных, текстовое поле для комментария). Нюанс в том, что у разных товаров чекбоксы различаются, соответственно, нужно делать разные модальные окна для каждого товара (или группы товаров)
Я пробовал вставлять модальное окно от бутстрапа в карточке товара в админке, однако после сохранения идентификатор myModal исчезает, в итоге при нажатии на кнопку модальное окно не выводится
В Yupe есть возможность создавать блоки контента и вставлять туда любое содержимое. Смысл в том, что можно прописать в php-файле код модального окна, и уже в нём вставить код блока контента, тогда всё выводится нормально.
Однако поскольку содержимое модальных окон разное, то нужно подгружать разные блоки контента в зависимости от категории товара или самого товара
Код примерно следующий:
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<!-- Заголовок модального окна -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Запрос цены</h4>
</div>
<!-- Основное содержимое модального окна -->
<div class="modal-body">
<?php if (Yii::app()->hasModule('contentblock')): ?>
<?php $this->widget(
"application.modules.contentblock.widgets.ContentBlockWidget",
["code" => "CODE", "silent" => true]
); ?>
<?php endif; ?>
</div>
</div>
</div>
</div>
на место CODE вставляется код блока контента.
ПОсоветовали сделать в Модели Товара метод getCode, в котором получаем значение кода в зависимости от категории товара
затем использьзовать примерно так:
<?php if (Yii::app()->hasModule('contentblock')): ?>
<?php $this->widget(
"application.modules.contentblock.widgets.ContentBlockWidget",
["code" =>$itemModel->getCode(), "silent" => true]
); ?>
<?php endif; ?>
Однако, поскольку опыт программирования у меня совсем небольшой, не совсем понятно, где находится эта модель товара, а также программирование метода getCode, поэтому буду благодарен за любую помощь.