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]]