Cниппет видеопоиска для MODX REVO.
Сниппет использует API сервиса YouTube, для поиска каналов или видео и возвращает связанные с ними данные.
getYoutube первое расширение написанное Дэвидом Педе (@davepede) и выпущенный 14 апреля, 2014.
Расширение можно скачать в репозитории MODX REVO с помощью менеджера управления пакетами или из репозитория http://modx.com/extras/package/getYoutube.
Исходники и само расширение также доступено на github: https://github.com/tasianmedia/getYoutube.
Ошибки, вопросы и пожелания можно сообщить разработчику в github-репозитории, здесь: https://github.com/tasianmedia/getYoutube/issues.
[[!getYoutube]]
Для работы с сервисом Google вам потребуется зарегистрировать приложение, что бы вы могли отправлять запросы к API YouTube. Следуйте этому руководству, чтобы получить API-ключ Google.
Ключ | Описание |
getyoutube.api_key | API-ключ Google приложения |
Имя | Описание | По умолчанию |
mode | Режим поиска (варианты: канал или видео) | video |
video | Разделенный запятыми список числовых идентификаторов видео. | |
channel | Идентификатор канала YouTube для поиска. Вернутся все видео канала. | |
sortby | Сортировка. (варианты: date, rating, title, viewCount) | date |
limit | Ограничение для количества видео. (Примечание: допустимые значения: от 0 до 50 включительно) | 50 |
safeSearch | Режим для отсеивания видео, по уровню доступа. (варианты: none, moderate, strict) | none |
tpl | Имя чанка, выступающий в качестве основного шаблона. (Обязательно) | videoTpl |
tplAlt | Имя чанка, выступающий в качестве шаблона для альтернативного видео. | |
toPlaceholder | Если установлен, присваивает вывод результата в этот плейсхолдер вместо вывода напрямую. | |
totalVar | Определяем ключевые плейсхолдеры, установленные для getYoutube. | total |
Имя | Описание |
[[+id]] | ID видео. |
[[+title]] | Заголовок видео. |
[[+description]] | Описание видео. |
[[+url]] | Ссылка на страницу видео. |
[[+publish_date]] | Дата публикации. |
[[+thumbnail_small]] | Ссылка на маленькое изображение видео (120 x 90px). |
[[+thumbnail_medium]] | Ссылка на среднее изображение видео (120 x 90px). |
[[+thumbnail_large]] | Ссылка на среднее изображение видео (480 x 360px). |
[[+channel_title]] | Заголовок канала. |
[[+duration]] | Продолжительность видео. |
[[+viewCount]] | Количество просмотров. |
[[+likeCount]] | Количество лайков. |
[[+dislikeCount]] | Количество отрицательных лайков. |
[[+favoriteCount]] | Количество избранных. |
[[+commentCount]] | Количество комментариев. |
Имя | Описание |
[[+total]] | Количество видео вернувшихся в результате запроса. |
[[+nextPage]] | Ссылка на слудующую старницу(подробнее смотрите в документации по пагинации). |
[[+prevPage]] | Ссылка на предыдущую старницу(подробнее смотрите в документации по пагинации). |
Выводим все видео с YouTube канала 'Spotlight', используем 'videoTpl' чанк:
[[!getYoutube? &mode=`channel` &channel=`UCBR8-60-B28hp2BmDPdntcQ` &tpl=`videoTpl` ]]
Выводим определенное видео, используя 'videoTpl' чанк:
[[!getYoutube? &mode=`video` &video=`_X-jSkrqYzk,FoRRybrFR0c,yXBPbnv1H-U` &tpl=`videoTpl` ]]
Выводим все видео с YouTube канала 'Spotlight', используем 'videoTpl' чанк и назначаем вывод в плейсхолдер:
[[!getYoutube? &mode=`channel` &channel=`UCBR8-60-B28hp2BmDPdntcQ` &tpl=`videoTpl` &toPlaceholder=`videos`]]
[[+videos:notempty=`[[+videos]]` ]]
Данные из API YouTube возвращаются блоками по 50. Можно использовать встроенные плейсхолдеры пагинации что бы вывести результаты каналов в которых количество видео больше 50.
Выводим все видео с YouTube канала 'Spotlight', используем 'videoTpl' чанк:
[[!getYoutube? &mode=`channel` &channel=`UCBR8-60-B28hp2BmDPdntcQ` &tpl=`videoTpl`]]
[[+prevPage:notempty=`<a href="[[+prevPage]]">prevPage</a>`]]
[[+nextPage:notempty=`<a href="[[+nextPage]]">nextPage</a>`]]
Total: [[+total]]
Выводим все видео с YouTube канала 'Spotlight', 10 одновременно, используя 'videoTpl' чанк:
[[!getYoutube? &mode=`channel` &channel=`UCBR8-60-B28hp2BmDPdntcQ` &tpl=`videoTpl` &limit=`10`]]
[[+prevPage:notempty=`<a href="[[+prevPage]]">prevPage</a>`]]
[[+nextPage:notempty=`<a href="[[+nextPage]]">nextPage</a>`]]
Total: [[+total]]