Вывод в теме
Обновлено
Готовый блок
Вставьте код в шаблон темы 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, как в стандартном шаблоне.