Вывод в теме
Обновлено
Готовый блок: render()
Разместите вызов в Smarty-шаблоне темы в том месте, где нужен плейлист. Число 1 замените ID из кода, показанного в редакторе плейлиста.
{if !empty($wa->shop->ewshopvkvideosPlugin->version())}
{$wa->shop->ewshopvkvideosPlugin->render(1)}
{/if}Метод render($playlist_id, $options = array()) возвращает HTML сохранённого плейлиста. Если ID не задан, плейлист отсутствует или у него нет видео, возвращается пустая строка.
Стандартный блок содержит название и описание плейлиста, сетку карточек, названия и превью видео. Описание ролика сокращается Smarty-модификатором truncate:120. После нажатия на превью создаётся iframe с плеером и параметром autoplay=1.
Второй аргумент $options передаётся в шаблон как массив options, но стандартный шаблон не использует его для настройки вида. Публичные параметры количества колонок, лимита видео или цвета в нём не реализованы.
Используйте числовой ID сохранённого плейлиста. Передача массива URL в render() в этой версии неработоспособна: соответствующая ветка вызывает отсутствующий в плагине метод.
Данные для собственного вывода: getPlaylist()
Метод getPlaylist($playlist_id, $options = array()) возвращает массив playlist и videos. При отсутствии плейлиста возвращает пустой массив. Второй аргумент не меняет выборку.
{if !empty($wa->shop->ewshopvkvideosPlugin->version())}
{$data = $wa->shop->ewshopvkvideosPlugin->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}У playlist доступны в том числе id, name, description и исходный текст video_urls.
Поле элемента videos |
Содержание |
|---|---|
url |
Сохранённая исходная ссылка на ролик |
title |
Полученное название; если его нет — Видео VK и идентификатор ролика |
description |
Описание ролика или пустая строка |
image |
URL превью или пустая строка |
player |
URL встроенного плеера или пустая строка |
Данные читаются из базы. Сам вызов getPlaylist() не обращается к VK за новыми метаданными. Порядок видео не гарантирован: метод модели читает записи без явного ORDER BY.
Переопределение шаблона
Исходный шаблон в установленном плагине:
wa-apps/shop/plugins/ewshopvkvideos/templates/actions/frontend/FrontendVideos.htmlСкопируйте его в корень используемой темы под именем:
ewshopvkvideos_plugin.frontend_videos.htmlДля темы магазина путь будет таким:
wa-apps/shop/themes/<theme_id>/ewshopvkvideos_plugin.frontend_videos.htmlДля шорткода в записи блога:
wa-apps/blog/themes/<theme_id>/ewshopvkvideos_plugin.frontend_videos.html<theme_id> — идентификатор темы. Плагин проверяет наличие файла в теме, определённой текущим запросом; если его нет, использует исходный шаблон.
При вызове render() доступны переменные playlist, videos, options. Обработчик шорткода блога явно передаёт только playlist и videos; для общего шаблона не рассчитывайте на наличие options.
Стили и JavaScript стандартного блока находятся прямо в FrontendVideos.html. При изменении разметки сохраните или замените обработчик нажатия на превью, иначе встроенный плеер не появится. Сам хелпер render() ищет тему магазина; обработчик шорткода ищет тему блога.