Шаблон Простор + Rutube

Поддержка шаблонов, продающихся на нашем сайте
Waskadagama
Сообщения: 6
Зарегистрирован: 20.11.2023
Поблагодарил: 1 раз
Спасибо: 1 раз

Шаблон Простор + Rutube

Непрочитанное сообщение Waskadagama »

В связи с замедлением Youtube, возникла необходимость добавить в шаблон поддержку Rutube.
К сожалению, только модификатором, сделать не получится, необходимо внести несколько правок в файл скрипта jquery.fancybox.js. Файл и его минифицированную версию сделал вложением.
Добавление ролика осуществляется с помощью стандартной вкладки шаблона Дополнительные вкладки товаров → Видео-вкладка. После модификации можно добавлять один или несколько роликов как с Youtube так и с Rutube, НО в случае нескольких роликов для одного товара ВСЕ ролики должны быть с одной платформы.
 

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

  <!-- Rutube -->  
  <file path="catalog/view/theme/prostore/template/product/product.twig">
    <operation>
        <search><![CDATA[{% if count_videos == 1 and video.0.description %}]]></search>
        <add position="replace"><![CDATA[{% if count_videos == 1 and video.0.description and video.0.description|length == 11 %}]]></add>
    </operation>
    <operation>
        <search><![CDATA[{% elseif count_videos > 1 %}]]></search>
        <add position="before"><![CDATA[
                                            {% elseif count_videos == 1 and video.0.description and video.0.description|length == 32 %}
                                            <!-- одно видео Rutube -->
                                            <div class="sku__video">
                                                <a class="ui-link ui-link--blue" href="https://rutube.ru/video/{{video.0.description}}/" data-fancybox>
                                                    <svg class="icon-video"><use xlink:href="catalog/view/theme/prostore/sprites/sprite.svg#icon-video"></use>
                                                    </svg>{{ text_show_video }}
                                                </a>
                                            </div>]]></add>
    </operation>
    <operation>
        <search><![CDATA[{% elseif count_videos > 1 %}]]></search>
        <add position="replace"><![CDATA[
                                            {% elseif count_videos > 1 and video.0.description|length == 32 %}
                                            <!--  несколько видео Rutube-->
                                            <div class="sku__video">
                                                <a class="ui-link ui-link--blue" href="#rutube" data-fancybox>
                                                    <svg class="icon-video"><use xlink:href="catalog/view/theme/prostore/sprites/sprite.svg#icon-video"></use>
                                                    </svg>{{ text_show_video }}
                                                </a>
                                            </div>
                                            {% elseif count_videos > 1 and video.0.description|length == 11 %}]]></add>
    </operation>
    <operation>
        <search><![CDATA[{% if count_videos > 1 %}]]></search>
        <add position="replace"><![CDATA[
                    {% if count_videos > 1 and video.0.description|length == 32 %}
                    <div class="fancybox-is-hidden popup popup--custom" id="rutube">
                        <span class="popup__title">{{ text_show_video }}</span>
                        <div class="popup__form">
                            {% for item_video in video %}
                            <a class="rutube-video-place" href="https://rutube.ru/play/embed/{{item_video.description}}/">
                                <figure class="ui-video__figure">
                                    <img src="https://rutube.ru/api/video/{{item_video.description}}/thumbnail/?redirect=1" alt="" loading="lazy">
                                    <svg class="icon-video hide"><use xlink:href="catalog/view/theme/prostore/sprites/sprite.svg#icon-video"></use></svg>
                                </figure>
                            </a>
                            {% endfor %}
                            </div>
                    </div>
                    {% elseif count_videos > 1 and video.0.description|length == 11 %}]]></add>
    </operation>
    <operation>
        <search><![CDATA[$(document).on('click','.youtube-video-place', function(e) {]]></search>
        <add position="before"><![CDATA[
$(document).on('click','.rutube-video-place', function(e) {
    e.preventDefault();
    $(this).html('<div class="ratio ratio-16x9 rtb-iframe"><iframe allow="clipboard-write; autoplay" width="820" height="461" src="' + $(this).attr('href') + '" frameBorder="0" class="embed-responsive-item" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></div>');
});]]></add>
    </operation>
  </file>
  <file path="admin/language/ru-ru/extension/module/prostore/prostore_tab.php">
    <operation>
        <search><![CDATA[$_['text_video']                         = 'Youtube id';]]></search>
        <add position="replace"><![CDATA[$_['text_video']                         = 'Youtube или Rutube id';]]></add>
    </operation>
  </file>

Также нужно добавить одно правило CSS в раздел Для разработчиков

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

.rtb-iframe { margin: 0 0 2rem; }

Рабочий магазин на последней версии шаблона. Сейчас осуществляется перенос роликов с Youtube на Rutube. Большинство товаров имеют по 2 ролика.
Вложения
jquery.fancybox.min.js.gz
(20.61 КБ) 2425 скачиваний
jquery.fancybox.js.gz
(36.59 КБ) 2417 скачиваний
Аватара пользователя
BuslikDrev
Разработчик дополнений
Сообщения: 172
Зарегистрирован: 22.04.2022
Откуда: Кіеўская Русь
Поблагодарил: 4 раз
Спасибо: 10 раз
Контактная информация:

Re: Шаблон Простор + Rutube

Непрочитанное сообщение BuslikDrev »

Лучше использовать plvideo.ru т.к. он не требует куков, а у многих могут быть заблокированы куки для сторонних сайтов.
Ответить