К содержимому
Вывод в теме

Вывод в теме

Обновлено

Готовый блок

Вставьте код в шаблон темы Shop-Script, который обрабатывается Smarty:

{if !empty($wa->shop->ewshoprtvideosPlugin->version())}
    {$wa->shop->ewshoprtvideosPlugin->render(1)}
{/if}

Замените 1 на ID плейлиста из блока «Код для вставки в шаблон:» в разделе «RuTube видео». Обёртка проверяет доступность плагина перед вызовом.

Метод render($playlist_id = null, $options = array()) возвращает HTML. При отсутствующем ID, ненайденном плейлисте или пустом списке видео возвращается пустая строка. Автоматический вывод в карточку товара или другое место витрины не зарегистрирован: место размещения определяет шаблон темы.

Стандартный шаблон создаёт сетку карточек. По нажатию на превью он заменяет изображение встроенным плеером. Если изображения нет, области превью для запуска плеера в стандартном шаблоне тоже нет.

Данные для своего оформления

getPlaylist($playlist_id = null, $options = array()) возвращает массив с ключами playlist и videos. Для отсутствующего или ненайденного ID результат — пустой массив.

Данные Содержимое
playlist.id ID плейлиста
playlist.name Название плейлиста
playlist.description Описание плейлиста
videos Массив роликов
videos[].url Сохранённая ссылка на ролик
videos[].title Название; если его нет, используется «Видео RuTube » с ID ролика
videos[].description Описание ролика или пустая строка
videos[].image Адрес превью или пустая строка
videos[].player Адрес встроенного плеера или пустая строка

В playlist также возвращаются сохранённые поля video_urls, sort, create_datetime и update_datetime.

Пример собственного списка ссылок:

{if !empty($wa->shop->ewshoprtvideosPlugin->version())}
    {$data = $wa->shop->ewshoprtvideosPlugin->getPlaylist(1)}
    {if !empty($data.videos)}
        <h2>{$data.playlist.name|escape}</h2>
        <ul>
            {foreach $data.videos as $video}
                <li>
                    <a href="{$video.url|escape}" target="_blank" rel="noopener noreferrer">
                        {$video.title|escape}
                    </a>
                </li>
            {/foreach}
        </ul>
    {/if}
{/if}

Второй аргумент $options не фильтрует и не ограничивает результат getPlaylist. При render по ID он передаётся шаблону как $options; стандартный шаблон его не использует. Готовых параметров количества колонок или ограничения числа видео нет.

Используйте сохранённый плейлист и числовой ID. В хелпере есть ветка для массива ссылок, но она вызывает отсутствующий в классе плагина метод getVideoMetadata; такой способ вывода не следует использовать.

Переопределение шаблона

Исходный файл установленного плагина:

wa-apps/shop/plugins/ewshoprtvideos/templates/actions/frontend/FrontendVideos.html

Скопируйте его в корень активной темы приложения «Магазин» под именем:

ewshoprtvideos_plugin.frontend_videos.html

Для шорткода в блоге поместите файл с тем же именем в активную тему приложения «Блог». Хелпер магазина ищет переопределение в теме магазина, обработчик шорткода — в теме блога. Если подходящий файл темы не найден, используется исходный шаблон плагина.

Шаблону передаются $playlist и $videos. При выводе через render также передаётся $options; обработчик шорткода его не задаёт. Сохраняйте экранирование текстовых значений и URL через |escape, как в стандартном шаблоне.