Slick Slider в модальном окне Bootstrap

При загрузке страницы сайта все Slick Slider, находящиеся в модальных окнах, не будут инициализированы, т.к. модальное окно имеет стиль display:none.
Чтобы решить эту проблему добавляем небольшой код на jQuery, который инициализирует Slick Slider в момент открытия модального окна и наоборот, отменит инициализацию после закрытия окна.
В примере
    $('#modal').on('shown.bs.modal', function() {  // запускаем модальное окно
      $('#modal .slick-slider').not('.slick-initialized').slick();   // если slick slider не инициализирован, то делаем это
      $('#modal .slick-slider').slick('refresh');
    });

    $('#modal').on('hidden.bs.modal', function() {  // закрываем модальное окно
      $('#modal .slick-slider').slick('unslick').empty();   // после закрытия модального окна отменяем инициализацию slick slider
    });

Модальное окно с формой подписки и сохранением куки на jQuery

Добавляем в макет код показа формы:

<?php
        // add ФОРМА ПОДПИСКА ЗА СКИДКУ
     $oForm = Core_Entity::factory('Form', 49);  // заменить ID формы
      
     $Form_Controller_Show = new Form_Controller_Show($oForm);
      
     if (!is_null(Core_Array::getPost($oForm->button_name)))
     {
     $Form_Controller_Show
     ->values($_POST + $_FILES)
     // 0 - html, 1- plain text
     ->mailType(0)
     ->mailXsl(
     Core_Entity::factory('Xsl')->getByName('ПисьмоКураторуФормыВФорматеHTML')
     )
     ->mailFromFieldName('email')
     ->process();
     }
      
     $Form_Controller_Show
     ->xsl(
     Core_Entity::factory('Xsl')->getByName('ОтобразитьФормуВМодальномОкне')
     )
      ->show();
?>

Подключаем в макете скрипт jquery.cookie.min.js:

<script src="/js/jquery.cookie.min.js"></script>

Проверяем куки:

<script>
$(document).ready(function($) {
if ($.cookie('was') == null) {
// Покажем всплывающее окно
setTimeout(function(){$('#popupModal').modal('show');}, 36000);
}
// Запомним в куках, что посетитель к нам уже заходил
$.cookie('was', 'value', { expires: 2, path: '/' });
});
</script>

JavaScript / jQuery . jquery.cookie.min.js

jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};

РАЗНОЕ

Вызов модального окна
  <script>   
              let modalSuccess = new bootstrap.Modal(document.getElementById('modalSuccess'));
              modalSuccess.show();
  </script>

Создаем iframe с видео

Модальное окно с запуском видео при открыти
<div class="modal fade" id="myModalVideo" tabindex="-1" role="dialog">
     <div class="modal-dialog">
       <div class="modal-content">
                <div class="modal-header"><button class="close" type="button" data-dismiss="modal">x</button>
          </div>
        <div class="modal-body">
         <object width="1" height="1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data="" type="application/x-shockwave-flash"><param name="src" value="/video/Egeria.mp4" /><embed width="1" height="1" type="application/x-shockwave-flash" src="/video/Egeria.mp4" /></object>
        </div>
    </div>
  </div>
</div>
Кнопка вызова модальноно окна
<button type="button" id="toggleModalVideoYoutube" data-bs-toggle="modal" data-bs-target="#myModalVideo">
  Запустить модальное окно
</button>

JavaScript / jQuery

<script>
$(function() {
/*создаем iframe с видео*/
var videoIframe = $("<iframe/>", {
"class": "embed-responsive-item",
"src": "https://www.youtube.com/embed/cNLJB-giaVo?autoplay=1&enablejsapi=1&playerapiid=ytplayer",
"width": "96%",
"height": "400px",
"frameborder": "0",
"allowfullscreen": ""
});
/*по клику на кнопку .toggleModalVideoYoutube аттачим iframe с видео в модалку*/
$('.toggleModalVideoYoutube').click(function () {
$('#myModalVideo').modal('show');
videoIframe.appendTo('#myModalVideo .modal-body');
});
/*по закрытию модалки убираем iframe */
$('#myModalVideo').on('hidden.bs.modal', function () {
videoIframe.detach();
});
});
</script>