Нужна помощь по выводу содержимого модального окна

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Ramapriya
Сообщения: 6
Зарегистрирован: 2017.02.08, 05:34

Нужна помощь по выводу содержимого модального окна

Сообщение Ramapriya »

Всем привет.

Я только начинаю погружаться в программирование, до этого занимался исключительно вёрсткой.
Сейчас работаю в компании, и по работе нужно переносить сайт на другой движок.

Проанализировав различные 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 вставляется код блока контента.

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

Буду благодарен за любую помощь.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Нужна помощь по выводу содержимого модального окна

Сообщение yiijeka »

Судя по коду https://github.com/yupe/yupe/blob/maste ... et.php#L61 в БД хранится контент блока, вам нужно просто связать code из таблицы contentblock_content_block с полями из таблиц "категории или товара"
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Нужна помощь по выводу содержимого модального окна

Сообщение yiijeka »

Сделайте в Модели Товара метод getCode, в котором вы получаете значение кода в зависимости от категории товара
затем используйте так:

Код: Выделить всё

 <?php if (Yii::app()->hasModule('contentblock')): ?>
          <?php $this->widget(
             "application.modules.contentblock.widgets.ContentBlockWidget",
             ["code" =>$itemModel->getCode(), "silent" => true]
          ); ?>
       <?php endif; ?>
Ramapriya
Сообщения: 6
Зарегистрирован: 2017.02.08, 05:34

Re: Нужна помощь по выводу содержимого модального окна

Сообщение Ramapriya »

yiijeka писал(а): 2017.02.08, 08:57 Сделайте в Модели Товара метод getCode, в котором вы получаете значение кода в зависимости от категории товара
затем используйте так:

Код: Выделить всё

 <?php if (Yii::app()->hasModule('contentblock')): ?>
          <?php $this->widget(
             "application.modules.contentblock.widgets.ContentBlockWidget",
             ["code" =>$itemModel->getCode(), "silent" => true]
          ); ?>
       <?php endif; ?>
в модели товара - это protected/components/Model.php?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Нужна помощь по выводу содержимого модального окна

Сообщение yiijeka »

Нет, модель товара - это вы должны создать, это Active Record, отображение данных таблицы товаров из базы данных.

Вы не с того начали свой путь в программировании php... Вам бы с нуля создать пару вещей по руководству хотя бы, чтобы понимать как всё устроено в Yii1.
Ramapriya
Сообщения: 6
Зарегистрирован: 2017.02.08, 05:34

Re: Нужна помощь по выводу содержимого модального окна

Сообщение Ramapriya »

yiijeka писал(а): 2017.02.08, 14:33Вы не с того начали свой путь в программировании php... Вам бы с нуля создать пару вещей по руководству хотя бы, чтобы понимать как всё устроено в Yii1.
Я бы рад, но по работе надо переносить сайт на новый движок, в результате анализа выбор пал на Юпи, т.к. многие задачи, необходимые для сайта, реализованы из коробки. Создание пары вещей по руководству - это скорее в свободное от работы время, что тоже в планах
yiijeka писал(а): 2017.02.08, 14:33 Нет, модель товара - это вы должны создать, это Active Record, отображение данных таблицы товаров из базы данных.
Active record - это экшен? просто для меня многие вещи пока тёмный лес, поэтому простите, если буду задавать глупые вопросы :oops:
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Нужна помощь по выводу содержимого модального окна

Сообщение yiijeka »

Тогда лучше обращайтесь в чат https://gitter.im/yiisoft/yii2/rus, там легче вести беседу и объяснять простые вещи.
Ответить