[videoGallery] Видео галерея YouTube, Vimeo



Небольшой компонент, который добавляет новый тип TV — videoGallery. Туда можно вставить ссылку на ролик Ютуб и получить JSON в это ТВ (чего хватит для Fenom). Но можно и раскидать данные ролика по полям документа в автоматическом режиме, путём указания в системных настройках требуемых полей.



На картинке:
  • в блоке номер 1 — TV поле с типом videoGallery.
  • в блоке номер 2 — поля указанные по желанию в настройках (они необязательны).
Для того, чтобы компонент мог получить название и описание ролика, в настройках нужно вписать YouTube Data API Key v3. Здесь подробнее о том, как его получить — developers.google.com/youtube/v3/getting-started?hl=ru

В компоненте были использованы 2 класса для обработки ссылок:
  1. videoThumb от Василия Наумкина — bezumkin.ru/sections/blog/441/
  2. Panorama PHP от frandieguez — github.com/frandieguez/Panorama-PHP

Пример обработки JSON поля средствами Fenom:
{set $video_json = json_decode($_modx->resource.video, true)}

{if $video_json.video?}
	
	<div><img src="{$video_json.image}" /></div>
	
	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
	
	{if $video_json.title?}
		<div><b>Название:</b> {$video_json.title}</div>
	{/if}
	{if $video_json.desc?}
		<div><b>Описание:</b> {$video_json.desc}</div>
	{/if}
	
{else}
	Видео нет
{/if}

Видеогалерея — это конечно громко сказано. Однако название было придумано с расчётом на будущее данного компонента.

Скачать компонент — modstore.pro/packages/other/videogallery
Павел Гвоздь
Павел Гвоздь
22 августа 2015, 19:06
modx.pro
18 164
Поблагодарить автора Отправить деньги
Реклама

Комментарии: 191

Илья Уткин
Илья Уткин Администратор
23 августа 2015, 00:34
Я не знаю, кто поставил вам минус, но прошу не обращать на это внимание.

Компонент очень интересный и многим понадобится. Я себе уже поставил галочку, что такой компонент есть, и теперь буду знать, где его найти.
    Василий Наумкин
    Василий Наумкин Администратор
    23 августа 2015, 06:40
    Вместо «Не трогать! Заполняется автоматически.» лучше сделать эти поля disabled или readonly, чтобы потрогать не вышло при всём желании.

    Ну и не хватает примеров по выводу этого ТВ на странице, особенно через Fenom.
      Павел Гвоздь
      Павел Гвоздь Старожил
      23 августа 2015, 09:04
      Обязательно чуть позже напишу пример того, как средствами Феном вывести видео на странице.
      Максим
      Максим Старожил
      23 августа 2015, 07:40
      До галереи тут еще далеко, хотя задача «1 видео на странице» тоже имеет место быть. Выскажу свои соображения как разработчик двух видеогалерей для Evo (:

      Не совсем понятно, зачем использовать два класса, которые решают одну и ту же задачу. Разница только в том, что videoThumb не умеет получать название, описание и другие характеристики видео, но зато он будет работать без ключа. А Panorama, как я помню, не понимал ссылки типа youtu.be, если не исправили уже, конечно.

      «Не трогать! Заполняется автоматически» — лучше было бы не заполнять автоматически там, где заполнили вручную. Даже в примере пользователь, скорее всего, захочет убрать ссылку из описания. Если же данные запрашиваются и перезаписываются каждый раз при сохранении страницы, то это не очень хорошо.

      А ссылку на embed нет смысла вообще показывать в админке, она необходима только при выводе. Вообще не представляю ситуацию, в которой пользователю нужна возможность менять это поле.
        Павел Гвоздь
        Павел Гвоздь Старожил
        23 августа 2015, 09:01
        Panorama так и не понимает ссылки такого вида. По поводу «зачем 2 класса», Вы сами ответили на свой вопрос. Один для того, если не введен ключ апи, второй чтобы получать название и описание.

        По полям, которые ниже поля с видео — эти поля каждый создает сам, ровно как и поле с типом videoGallery, поэтому вместо «заполняется автоматически», каждый для себя может написать что угодно. А может вообще не создавать эти поля, а выводить ту-же самую информацию используя возможности Fenom. Фактически, эти 4 поля каждый создает (или не создаёт) сам для своего же удобства. Кому удобнее хранить всё в одном json поле — обходится только первым полем. Единственное я скрыл поле с массивом json, наверное всё же нужно было оставить его для наглядности того, что оно есть?

        Данные запрашиваются при событии jquery — «input». А при сохранении срабатывает плагин, который удаляет старые не используемые изображения из папки, оставляя только то, что используется в Json массиве в поле с типом «videoGallery».
          Максим
          Максим Старожил
          23 августа 2015, 17:38
          Единственное я скрыл поле с массивом json, наверное всё же нужно было оставить его для наглядности того, что оно есть?
          Нет, такое поле точно лишнее (:
        Павел Гвоздь
        Павел Гвоздь Старожил
        23 августа 2015, 16:01
        Пример обработки JSON поля средствами Fenom:
        {set $video_json = $modx->fromJSON($_modx->resource.video)}
        
        {if !empty($video_json['video'])}
        	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
        {else}
        	Видео нет
        {/if}
          Василий Наумкин
          Василий Наумкин Администратор
          23 августа 2015, 18:56
          Плохой пример, советую переписать. Переменная {$modx} отключена по умолчанию и включать её никому не советую, иначе любой менеджер сайта может натворить дел.

          Использовать её можно исключительно там, где ты — единственный хозяин сайта и больше никого в админке гарантированно не будет. Если ты предлагаешь общедоступное решение — это не вариант.

          Так что использование {$modx-> fromJSON()} отпадает, но зато мы можем использовать обычный json_decode() — он в списке разрешенных функций Fenom, вместе с
          json_encode, count, is_string, is_array, is_numeric, is_int, is_object, strtotime, gettype, is_double, ip2long, long2ip, strip_tags, nl2br

          Так что, правильный вариант будет таков:
          {set $video_json = json_decode($_modx->resource.video, true)}
          
          {if !empty($video_json['video'])}
          	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
          {else}
          	Видео нет
          {/if}

          И кстати, можно заменить
          {if !empty($video_json['video'])}
          на
          {if $video_json.video?}
          См. операторы сравнения. Обожаю Fenom!
          Мордынский Николай
          27 августа 2015, 15:22
          Автору на заметку getYoutube.
          Так же Создает галерею из минусов компонента
          — Разработка заброшена но работает
          — Не поддерживает getPage pdoPage (собственная пагинация)
          — Есть два варианта работы либо указывается массив имен видео роликов ( прямо в коде что фигово ), 2 вариант указываться имя канала — глючит после некоторого времени начинает выводить только 4 1 -вых видео).
          Допилить бы этому компоненту пагинацию нормалдьную устранить баги с каналом и нормальнуюю админку и красота была бы.

          Суть работы такая указываешь канал и он ролики прямо с канала в галерею все выводит.
            Павел Гвоздь
            Павел Гвоздь Старожил
            27 августа 2015, 15:25
            Видел я его. Не подошёл он мне.
            Артем
            Артем Старожил
            10 сентября 2015, 07:16
            В tv вставляю ссылку, подгружается видео и картинка, сохраняю, fenom выдает «видео нет»

            ЧЯДНТ?
              Павел Гвоздь
              Павел Гвоздь Старожил
              10 сентября 2015, 09:56
              Попробуй включить PHP в настройках Феном и вывести вот так свой TV:
              {print_r($_modx->resource.video)}
              Возможно Феном (или что-то ещё) декодит JSON ещё на стороне вывода. У меня сейчас так с новой версии pdoTools. Надо переписать пример будет.

              Значит тебе надо выводить сразу вот так:
              {set $video = $_modx->resource.video}
              
              {if !empty($video['video'])}
              	<iframe width="860" height="650" src="{$video['video']}" frameborder="0" allowfullscreen></iframe>
              {else}
              	Видео нет
              {/if}
                Артем
                Артем Старожил
                10 сентября 2015, 10:32
                Простите, ошибка идиотская у меня: забыл поменять тв!
                  Павел Гвоздь
                  Павел Гвоздь Старожил
                  10 сентября 2015, 13:51
                  Извиняюсь. Дело не в обновлении pdoTools, а в его особенности. Точнее дело обстоит так:

                  — Если мы вызываем ТВшку через сниппет pdoResources, он у нас преобразует JSON в Array автоматом, и нам не надо декодировать ТВ параметр в чанке вывода результата.

                  — Если мы вызываем ТВшку на странице вот так — "$_modx->resource.video", он нам вернёт JSON массив, который как и прежде надо преобразовать в обычный массив декодировать.

                  Прошу прощения за то, что запутал. Сам запутался. Только сейчас дошло, в чём дело.
              миха86
              миха86 Старожил
              10 сентября 2015, 11:46
              а как вывести изображения/видео в pdoResources?
                Павел Гвоздь
                Павел Гвоздь Старожил
                10 сентября 2015, 11:48
                Используй настройки компонента. Укажи поля для изображения/видео — и выведи их.
                  миха86
                  миха86 Старожил
                  10 сентября 2015, 12:16
                  полчаса пытаюсь привязать tv параметр, а он упорно остается пустым
                    Павел Гвоздь
                    Павел Гвоздь Старожил
                    10 сентября 2015, 12:17
                    Друг, если это был вопрос, то я его не понял.
                      миха86
                      миха86 Старожил
                      10 сентября 2015, 12:19
                      Да я указал поле tv для изображения в настройках компонента. А на странице документа оно остается пустым.
                        Павел Гвоздь
                        Павел Гвоздь Старожил
                        10 сентября 2015, 12:25
                        Мм… Ну прежде всего хочется сказать, что для того, чтобы туда что-то попало, надо чтобы при указании ссылки на видео поле уже было указано в настройках. Ибо информация прописывается в поля указанные в настройках во время парсинга, а не чудным образом когда вам это захочется.

                        К тому-же я не вижу, в каком виде ты его указал. Может не правильно.

                        Если ты хочешь, чтоб тебе помогли — научись задавать вопросы. Чем больше информации ты укажешь в вопросе о своей проблеме и о попытках её решения, тем больше вероятности того, что тебе помогут.
                        Меня поражают подобные ситуации, когда люди думают, что той информацией, которой руководствуются они — априори руководствуются и их оппоненты. Это не так…
                          миха86
                          миха86 Старожил
                          10 сентября 2015, 12:28
                          Создал tv/добавил его в настройки/добавил видео в документ.

                          А в каком «виде» можно указать tv?
                            Павел Гвоздь
                            Павел Гвоздь Старожил
                            10 сентября 2015, 12:30
                            А в каком ты его указал? Можно указать так «tv.video_image», а можно так «tv_video_image», а можно так «video_image». Только для данного компонента приемлим один из этих вариантов — «tv.video_image».
                              миха86
                              миха86 Старожил
                              10 сентября 2015, 12:31
                              да, это оно. Спасибо за терпение!
                                Павел Гвоздь
                                Павел Гвоздь Старожил
                                10 сентября 2015, 12:33
                                Прошу на будущее, и не ради себя, а ради всех разработчиков, которые осуществляют безвозмездную поддержку своих компонентов: когда задаёшь вопрос, указывай как можно больше информации о проблеме, указывай то, что использовал в настройках, в вызове сниппета и т.п.

                                И в описании настройки есть пример, как указывать ТВ поле. Читай описание настроек чаще, оно не просто так пишется…
                Павел Гвоздь
                Павел Гвоздь Старожил
                15 сентября 2015, 16:50
                Скоро в modStore.pro появится обновление videoGallery 1.0.2 beta.

                Рекомендую всем обновится, потому что в ранних версиях была жёсткая недоработка с переносом картинок из временной папки.
                Владимир
                Владимир Старожил
                17 сентября 2015, 01:23
                Приветствую!
                Есть проблема: конфликт js в бэкенде при использовании videoGallery в документах вместе с ContentBlocks
                Да, понимаю, кроме меня ContentBlocks тут мало кто использует, увы. Но если, вдруг, автор проявит интерес к этой проблеме, готов обсудить стоимость ее устранения и буду благодарен, если в последующих релизах она будет пофиксена.
                Компонент videoGallery весьма хорошо подошел для сохранения превьюшки и прочих заявленных функций при работе с Vimeo.
                PS Кстати, зря в названии галереи Vimeo не упоминается, далеко не все можно хостить на youtube по многим причинам, потому, кто то ищет такое решение и в заголовок vimto хорошо бы добавить.
                Я использую платный аккаунт vimeo. Так как этот видеохостинг более продвинутый, по сравнению с youtube, в части кастомизации и брендирования плеера, настроек приватности, настроек для отображения видео на ограниченном перечне доменов и т.п.
                  Павел Гвоздь
                  Павел Гвоздь Старожил
                  17 сентября 2015, 10:15
                  Согласен, он может больше, чем просто обрабатывать YouTube, но мне некогда было тестить другие сервисы, поэтому указал лишь то, что тестил. Спасибо. Поправлю.

                  По поводу конфликта: у меня нет компонента ContentBlocks. Ту стоимость, которую они выставили — платить не вижу смысла, для устранения конфликта, уж извините. Тем более, что евро к тенге вырос почти в 2 раза чуть ли не за пол месяца. Если есть возможность дать мне доступ поработать на том сайте, где он у вас установлен (желательно чтобы это был чистый сайт, не боевой так сказать), я бы проявил интерес к устранению данного конфликта.
                    Владимир
                    Владимир Старожил
                    17 сентября 2015, 13:32
                    Спасибо. Сайт боевой, но доступ к отдельному контексту, организую.
                    Отпишу в личку.
                      Владимир
                      Владимир Старожил
                      18 сентября 2015, 01:48
                      Вылечилось добавлением ноконфликт
                      var $ = jQuery.noConflict();
                      Ext.onReady(function()
                      в core/components/videogallery/tv/input/tpl/tv.videoGallery.input.tpl
                    Владимир Ребров
                    26 сентября 2015, 17:35
                    Упорно не могу добиться вывода дополнительной инфы в TV
                    Настройки:
                    prntscr.com/8kom16
                    TV
                    prntscr.com/8kon1x
                    Страница ресурса:
                    prntscr.com/8konmr

                    Вставляю ссылку, обновляются превьюшки, tv для ссылки пустое

                    MODX v.2.4.1
                      Владимир
                      Владимир Старожил
                      26 сентября 2015, 18:17
                      tv для ссылки пустое
                      это же инпут — один раз вставили ссылку на видео, все записалось в базу, картинка в свою директорию. Далее вызываете в шаблоне, например феномом, как указано в топике. Или вы чего хотите?
                        Владимир Ребров
                        26 сентября 2015, 18:54
                        Я говорю не о поле, в которое вставляется ссылка на ролик. Посмотрите скрины. Я говорю о tv.video_link, в которое по идее должен записываться embed url.
                          Владимир
                          Владимир Старожил
                          26 сентября 2015, 19:04
                          У меня установлена версия videoGallery 1.0.2-beta. Соответственно, вывожу феномом любой из параметров. Не пользовался предыдущей версией, но если там embed url записывался в отдельную тивишку, то вызывайте ее без префикса, не [[*tv.video_link]], [[*video_link]].
                            Владимир Ребров
                            26 сентября 2015, 19:11
                            Да, спасибо, просто с префиксами напутал.
                      Владимир
                      Владимир Старожил
                      02 октября 2015, 10:15
                      Доброго дня! ID видео ни где не сохраняется отдельно?
                        Павел Гвоздь
                        Павел Гвоздь Старожил
                        02 октября 2015, 10:57
                        ID видео — это то, что _https://www.youtube.com/watch?v=Вот_здесь?
                          Владимир
                          Владимир Старожил
                          02 октября 2015, 11:01
                          Да, или без параметров как player.vimeo.com/video/135846206, соответственно 135846206
                          неудачный пример с вимео взял, он к одному домену привязан, но суть не меняться
                            Павел Гвоздь
                            Павел Гвоздь Старожил
                            02 октября 2015, 11:06
                            Не сохраняет.

                            Как вариант, обработать строку Феномом. У него есть модификатор replace:
                            {var $embed = $video_json.video}
                            {var $embed = $embed|replace:"http://www.youtube.com/embed/":""}
                            {var $embed = $embed|replace:"http://player.vimeo.com/video/":""}
                            {$embed}
                            P.S.: Не знаю точно, какой там embed УРЛ у vimeo, поэтому вместо того, что я написал в коде — замените на реальное.
                              Владимир
                              Владимир Старожил
                              02 октября 2015, 11:08
                              Да, спасибо, вариант
                              Однако, поле с id видео предусмотрите в следующей версии, очень оно будет полезным.
                          Владимир
                          Владимир Старожил
                          02 октября 2015, 11:06
                          Что бы при выводе в шаблоне раскидать по местам
                          <div data-type="vimeo"
                          					 data-videoid="135846206" айдишник только вырезать пока из {$video_json['video']} остается, если он ни где не сохраняется
                          					 data-thumb="{$video_json.image}"
                          					 data-title="{$video_json.title}"
                          					 data-description="{$video_json.desc}">
                          				    
                          				</div>
                          это для unitegallery.net/index.php?page=video-icon
                            Павел Гвоздь
                            Павел Гвоздь Старожил
                            02 октября 2015, 11:08
                            В след версии сделаю, чтоб сохранял.
                              Владимир
                              Владимир Старожил
                              02 октября 2015, 11:11
                              в личку написал
                        Сергей
                        Сергей Старожил
                        11 ноября 2015, 15:10
                        как удалить вставленный в тв поле ролик, если он больше не нужен?
                          Павел Гвоздь
                          Павел Гвоздь Старожил
                          11 ноября 2015, 15:41
                          Это не предусмотрел я. Точнее не сделал умышленно, чтобы не путать людей лишним полем с JSON инфой. Я подумаю над этим в след версии. А пока только вот так:
                            Сергей
                            Сергей Старожил
                            11 ноября 2015, 18:57
                            Перезаписать пустым не получается, ролик все равно остается.

                            Также в админке и на сайте он не отображается без костылей когда сайт https
                              Павел Гвоздь
                              Павел Гвоздь Старожил
                              11 ноября 2015, 19:01
                              Каких костылей? У меня нет https, чтобы тестить. Меня и так всё устраивает пока. Поэтому если хочешь, чтобы проблемы не было в коробке — напиши подробнее, пожалуйста.

                              По удалению ролика: когда перезаписываешь пустым, что-нибудь пишет? Или пишет, что сохранено, а ролик остался при последующем входе на страницу редактирования ресурса? Остаётся где? В JSON строке, или в дополнительных полях, которые указываются в настройках пакета?
                                Сергей
                                Сергей Старожил
                                11 ноября 2015, 19:56
                                в videoThumb.php исправил в 46 строке на https

                                остается в JSON строке, дополнительных полей нет вообще, только поле ввода ссылки
                                  Сергей
                                  Сергей Старожил
                                  11 ноября 2015, 19:57
                                  PS: удалил ролик из базы
                              Михаил
                              Михаил Старожил
                              26 декабря 2015, 21:11
                              ОФФтопик — а у вас как переключение языков реализовано (на скриншоте видно)?
                                Павел Гвоздь
                                Павел Гвоздь Старожил
                                26 декабря 2015, 21:41
                                Babel + контексты + плагин + нгинкс конфиг (2 строчки).
                                  Михаил
                                  Михаил Старожил
                                  26 декабря 2015, 21:58
                                  Спасибо за оперативный ответ!

                                  Получается что видео добавляется в соответствующий ресурс в каждом контексте?
                                  То есть, если три контекста = три языка, то видео добавляем в трех местах?
                          Федор
                          Федор Старожил
                          25 декабря 2015, 17:45
                          А можно для дебилов, как правильно вызывать конструкцию в pdoresources? в каком параметре… покажите пример плиз, а то у меня выгружается то массив кода запрос-ответ, то «сайт в сайте» в том месте, где должен выгружаться видео ролик.
                            Павел Гвоздь
                            Павел Гвоздь Старожил
                            25 декабря 2015, 17:58
                            Свой код в студию.
                              Федор
                              Федор Старожил
                              25 декабря 2015, 18:06
                              Ну я так понимаю через &sortby, ибо в документации — Можно указывать JSON строку с массивом нескольких полей.
                              На самом деле ковырялся ночью по разному, все не вспомню, поэтому и попросил вас написать, для ДЕБИЛОВ, как сделать, чтобы видео на странице появилось :))))
                              [[pdoResources?
                                  &sortby=`{{set $video_json = json_decode($_modx->resource.video, true)}
                              
                              {if !empty($video_json['video'])}
                              	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
                              {else}
                              	Видео нет
                              {/if}}`
                              ]]
                                Федор
                                Федор Старожил
                                25 декабря 2015, 18:15
                                Слушайте, я наверное сильно затупил, все что тут написано это для вывода галереи видео, а мне нужно тупо в шаблон с новостью вставить ролик, мне тупо вывести TV
                                TV поле с типом videoGallery.
                                на странице? :D
                                  Федор
                                  Федор Старожил
                                  25 декабря 2015, 19:05
                                  В общем ничего у меня не выходит, скажите пожалуйста, как и куда нужно все это вставлять, чтобы на странице можно было посмотреть видео…
                                    Павел Гвоздь
                                    Павел Гвоздь Старожил
                                    25 декабря 2015, 19:12
                                    Для начала надо указать в настройках пакета тв поля, куда будут записываться распарсенные данные видео ролика, в частности embed url. Это не тот тв, у которого тип videoGallery, это другой тв, желательно с типом «текстовая строка». Далее добавить видео и проконтролировать, чтобы твой тв, который ты указал в настройках был заполнен именно embed url. После выводишь этот свой тв на странице в ифрейме, наподобие примера с феномом.
                                      Федор
                                      Федор Старожил
                                      25 декабря 2015, 19:15
                                      Я все настроил… только по ходу везде указал значение videoGallery. + У меня это вставляется на страницах, реализованных через тикеты, то есть наверное мне еще jevix нужно отрубить… соответственно другой тв у меня video, как в примере
                                        Федор
                                        Федор Старожил
                                        25 декабря 2015, 20:12
                                        в общем, я совсем запутался, вместо видео выводится пустое место, в коде же — есть iframe с ссылкой на ролик, но с какого то приписывается конструкция внутри iframe
                                        <html><head></head><body></body></html>
                                        скрин в аттаче


                                        Вы не могли бы написать, как правильно выводить вот это
                                        {set $video_json = json_decode($_modx->resource.video, true)}
                                        
                                        {if $video_json.video?}
                                        	
                                        	<div><img src="{$video_json.image}" /></div>
                                        	
                                        	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
                                        	
                                        	{if $video_json.title?}
                                        		<div><b>Название:</b> {$video_json.title}</div>
                                        	{/if}
                                        	{if $video_json.desc?}
                                        		<div><b>Описание:</b> {$video_json.desc}</div>
                                        	{/if}
                                        	
                                        {else}
                                        	Видео нет
                                        {/if}

                                        fenom же в pdo, может я не так вывожу.? И куда вставить, мне нужно, чтобы видео было на страничке новости, как просто при вставке из ютуба — вставляю iframe на страницу и получаю видео, но проблема в одном- html редактор обрезает
                                        allowfullscreen
                                        от сюда следует, что не возможно на весь экран открыть…
                                          Федор
                                          Федор Старожил
                                          25 декабря 2015, 20:24
                                          Далее добавить видео и проконтролировать, чтобы твой тв, который ты указал в настройках был заполнен именно embed url
                                          не загружается :( пустое поле после вставки и сохранения документа
                                            Павел Гвоздь
                                            Павел Гвоздь Старожил
                                            25 декабря 2015, 20:32
                                            Кинь доступ в ЛС.
                                              Федор
                                              Федор Старожил
                                              25 декабря 2015, 20:36
                                              Вместо «Не трогать! Заполняется автоматически.» лучше сделать эти поля disabled или readonly, чтобы потрогать не вышло при всём желании.
                                              
                                              Ну и не хватает примеров по выводу этого ТВ на странице, особенно через Fenom.
                                               ответить
                                              Гвоздь  23 августа 2015, 09:04 #  ↑ +2  
                                              Обязательно чуть позже напишу пример того, как средствами Феном вывести видео на странице.
                                               ответить
                                              Может быть вы покажите пример? :)))пожалууйстаааа… а то у меня уже ошибки вылезают типа —
                                              Refused to display in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
                                              Покажите пример, а я сам найду ошибку, чтобы вас больше не дергать. Я сейчас все снес и удалил, заново переустановлю создам поля и тд. Спасибо!
                                                Павел Гвоздь
                                                Павел Гвоздь Старожил
                                                25 декабря 2015, 20:38
                                                Пример чего? Как вывести ТВ поле на странице, чтоли?..
                                                  Федор
                                                  Федор Старожил
                                                  25 декабря 2015, 20:41
                                                  да нет, я думал может быть, тут что-то не написано и нужно выводить, как у Василия было, примерно так —
                                                  [[!getVideo?url=`[[+tv.studioVideo]]`&return=`image`]]
                                                  кажется что-то пошло не так, все заново проделаю сейчас, не может быть, что поле не заполняется со ссылкой, у меня даже название и описание в поля заполняются… а тут такое
                                                  Павел Гвоздь
                                                  Павел Гвоздь Старожил
                                                  25 декабря 2015, 20:40
                                                  <iframe width="860" height="650" src="{$_modx->resource.video}" frameborder="0" allowfullscreen></iframe>
                                                  <iframe width="860" height="650" src="[[*video]]" frameborder="0" allowfullscreen></iframe>
                                                  У тебя проблема не в выводе, а в настройке… Поэтому доступ написал кинуть. Ну раз уж не хочешь — разбирайся сам…
                                                    Федор
                                                    Федор Старожил
                                                    25 декабря 2015, 21:35
                                                    В общем, заработало, правда криво — ember url упорно не хочет вставлять ссылку в создаваемое доп поле, как я его только не называл.., а в introtext вставилось без проблем и вывелось на страницу, но если вы используете Tickets в построении ветви вашего сайта поставьте галочки на «выполнять теги Modx» и «Отключить Jevix». Это на всякий, вдруг кто столкнется с такой же проблемой.

                                                    Но я так и не смог решить 2ю проблему, у меня для отображения превью к новостям используется TV поле image, и я хотел, чтобы при вставке видео, картинка добавлялась в это поле, вбил это тв в настройки но ничего не выходило. Теперь я понимаю, что у меня не только картинка в нужное поле не вставлялась, потому и не выводилась но еще и ссылка на видео. Промучался весь день, чтобы найти проблему, может быть вы знаете почему такое происходит?
                                    Марти
                                    Марти Старожил
                                    09 марта 2016, 09:00
                                    Возможно ли использовать вместе с MIGX для создания именно галереи, а не отдельного видео. Делаю так.

                                    ---Вкладки формы---
                                    [{«caption»: «video-gallery»,
                                    «fields»: [
                                    {«field»:«video-item», «caption»:«Видео», «inputTV»:«videoGallery»}]
                                    }]

                                    ---Разметка колонок---

                                    [{«header»:«Ссылка на видео», «sortable»:«true», «dataIndex»:«video-item», «renderer»:«this.renderVideoGalleryTV»}]

                                    Пишет ошибку — assets/components/migx/connector.php Failed to load resource: the server responded with a status of 500 (Internal Server Error)

                                    Думаю проблемма в этом — renderer":«this.renderVideoGalleryTV».
                                      Михаил
                                      Михаил Старожил
                                      17 мая 2016, 08:34
                                      Извините, поторопился.
                                        Марина Шипилова
                                        23 мая 2016, 17:42
                                        Никак не могу понять, почему описание видео не вставляется в content. То есть вот в introtext, tv и другие поля вставляется, а туда нет. Оно так и не должно вставляться или что-то я не так делаю?
                                          Павел Гвоздь
                                          Павел Гвоздь Старожил
                                          23 мая 2016, 18:46
                                          Скорее всего это из-за какого-то редактора, который навешивается на оригинальное поле контента. Я не тестировал пакет таким образом.
                                            Марина Шипилова
                                            23 мая 2016, 19:34
                                            Стоит markitup, но и без него не получается. То есть если создать tv — тип ввода — текстовый редактор — то тоже туда норм вставляется.
                                          Pavel Kravchuk
                                          Pavel Kravchuk Старожил
                                          28 мая 2016, 21:53
                                          подскажите плиз, можно ли использовать videoGallery в migx для создания видео галлереи?
                                          Вот мой код для создания галлереи:
                                          [
                                          {"caption":"Add Item", "fields": [
                                              {"field":"title","caption":"Title"},
                                          {"field":"video","caption":"Gallery","inputTV":"migx_video_gallery"}    
                                          ]}
                                          ]

                                          но при добавлении Видео на вкладке TV, у меня выводится пустое окно :(
                                          В логах тоже пусто.
                                            Павел Гвоздь
                                            Павел Гвоздь Старожил
                                            28 мая 2016, 22:34
                                            Я не тестировал, но вряд ли.
                                            Владимир
                                            Владимир Старожил
                                            08 июня 2016, 00:36
                                            Павел, вопрос о размере превьюшки.
                                            VideoGallery я использую с Vimeo. «Родное» изображение в случае с вимео большое — 1 920px × 1 080px (пример), но videoGallery получает его и сжимает до 640px × 360px (т.е. в 3 раза). Возможно 1 920px × 1 080px особо ни кому не требуется, но 640px × 360px не очень универсальный размер. Уменьшение в два раза кажется более щадящим.
                                            Собственно о чем я, а нельзя ли вынести в настройки возможность изменять размер сохраняемой превьюшки?
                                              Павел Гвоздь
                                              Павел Гвоздь Старожил
                                              08 июня 2016, 01:59
                                              videoGallery получает его и сжимает до 640px × 360px
                                              Это не пакет его сжимает, а сам сервис Vimeo. И в итоге, через API даёт возможность выбора между большим (640px), средним (200x150) и маленьким. Отсюда и изображения на 640px в ширину. Конечно, есть возможность получив изображение типа large, далее просто в конце обрезать "_640" и получить самый большой вариант изображения. Что я собственно и сделал в новой версии пакета. Обновляйся.

                                              — Добавлена возможность указывать ссылку на видео с канала в Vimeo: _ttps://vimeo.com/channels/{channelname}/{videoid}
                                              — Изображения с Vimeo теперь сохраняются в максимально возможном разрешении
                                                Владимир
                                                Владимир Старожил
                                                08 июня 2016, 07:23
                                                Таааак)))) Прекрасно!
                                                А теперь подскажи, у тебя так же QIWI для спасибо или уже нормально с Яндекс кошельком?
                                                  Павел Гвоздь
                                                  Павел Гвоздь Старожил
                                                  08 июня 2016, 21:43
                                                  Нормально уже. :) Пиши в личку, если что.
                                              Leo
                                              Leo Старожил
                                              02 июля 2016, 05:59
                                              А можно ли обновить все превьюшки Vimeo через консоль (Console)? Что то не придумаю как.
                                                Павел Гвоздь
                                                Павел Гвоздь Старожил
                                                03 июля 2016, 04:44
                                                Можно. Надо сделать выборку и перегенерировать каждый видеоролик заново.
                                                Набросал код, который обновит видео превьюхи у всех ресурсов. Если надо разграничить только для сервиса Vimeo — нужно добавить соответствующую проверку в выборку xPDO, это совершенно не сложно.

                                                $field = $modx->getOption('videogallery_field_image');
                                                
                                                $q = $modx->newQuery('modResource');
                                                $q->innerJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.contentid = modResource.id');
                                                $q->innerJoin('modTemplateVar', 'modTemplateVar', 'modTemplateVar.id = modTemplateVarResource.tmplvarid');
                                                $q->select(array(
                                                    'modResource.id as resource_id',
                                                    'modTemplateVar.id as tv_id',
                                                    'modTemplateVar.name as tv_name',
                                                    'modTemplateVarResource.value as tv_value',
                                                    'modTemplateVarResource.id as id',
                                                ));
                                                $q->where(array(
                                                    'modTemplateVar.type' => 'videoGallery',
                                                ));
                                                $q->prepare();
                                                $q->stmt->execute();
                                                $rows = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                
                                                foreach ($rows as $row) {
                                                    // print_r($row);
                                                    $data = $modx->fromJSON($row['tv_value']);
                                                    if (is_array($data) && isset($data['video'])) {
                                                        $old['fileurl'] = $data['image'];
                                                        $old['filepath'] = str_replace(MODX_ASSETS_URL, MODX_ASSETS_PATH, $old['fileurl']);
                                                        
                                                        $resp = $modx->runProcessor('gallery/handle', array(
                                                            'resource' => $row['resource_id'],
                                                            'tv' => $row['tv_id'],
                                                            'video' => $data['video'],
                                                        ), array('processors_path' => MODX_CORE_PATH . 'components/videogallery/processors/mgr/'));
                                                        
                                                        $resp = $resp->response;
                                                        // print_r($resp['object']['image'].PHP_EOL);
                                                        
                                                        if ($resp['success']) {
                                                            if ($resource = $modx->getObject('modResource', array('id' => $row['resource_id']))) {
                                                                $resource->setTVValue($row['tv_name'], $resp['object']['json']);
                                                                $resource->save();
                                                                
                                                                // Если в настройках указано поле для хранения изображений - сохраним в него новый путь до картинки
                                                                if ($field) {
                                                                    if (stristr($field, 'tv.')) {
                                                                        $resource->setTVValue(str_replace('tv.', '', $field), $resp['object']['image']);
                                                                    } else {
                                                                        $resource->set($field, $resp['object']['image']);
                                                                    }
                                                                    $resource->save();
                                                                }
                                                                
                                                                // Удалим старое изображение
                                                                if (file_exists($old['filepath']) && $old['fileurl'] != $resp['object']['image']) {
                                                                    @unlink($old['filepath']);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                
                                                print 'Done!';
                                                Я советую запускать его из терминала, вначале скрипта подключив MODX. Потому что, если ресурсов с видеороликами хотя-бы 30-50 штук, то времени на выполнение скрипта из браузера, скорее всего, не хватит.

                                                Подключить MODX в скрипте можно вставив этот код в самое начало:
                                                // Подключаем MODX
                                                define('MODX_API_MODE', true);
                                                do {
                                                    $dir = dirname(!empty($file) ? dirname($file) : __FILE__);
                                                    $file = $dir . '/index.php';
                                                    $i = isset($i) ? --$i : 10;
                                                } while ($i && !file_exists($file));
                                                if (file_exists($file)) {
                                                    require_once $file;
                                                } else {
                                                    exit("Access denied!");
                                                }
                                                $modx->getService('error', 'error.modError');
                                                $modx->getRequest();
                                                $modx->setLogLevel(modX::LOG_LEVEL_ERROR);
                                                $modx->setLogTarget('FILE');
                                                  Илья Уткин
                                                  Илья Уткин Администратор
                                                  03 июля 2016, 13:12
                                                  Возможно, вот такой вариант сможет и из Console обработать любое количество ресурсов:
                                                  <?php
                                                  $field = $modx->getOption('videogallery_field_image');
                                                  
                                                  // Сколько ресурсов обрабатывать за раз
                                                  $step = 1;
                                                  // Если процесс уже остановлен, сбрасываем OFFSET
                                                  if (!isset($_SESSION['Console']['completed'])) {
                                                      $_SESSION['console_offset'] = 0;
                                                  }
                                                  $offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
                                                  
                                                  $q = $modx->newQuery('modResource');
                                                  $q->innerJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.contentid = modResource.id');
                                                  $q->innerJoin('modTemplateVar', 'modTemplateVar', 'modTemplateVar.id = modTemplateVarResource.tmplvarid');
                                                  $q->select(array(
                                                      'modResource.id as resource_id',
                                                      'modTemplateVar.id as tv_id',
                                                      'modTemplateVar.name as tv_name',
                                                      'modTemplateVarResource.value as tv_value',
                                                      'modTemplateVarResource.id as id',
                                                  ));
                                                  $q->where(array(
                                                      'modTemplateVar.type' => 'videoGallery',
                                                  ));
                                                  
                                                  // Подсчитываем общее количество
                                                  $total = $modx->getCount('modResource', $q);
                                                  
                                                  // Пропускаем все уже обработанные объекты
                                                  $q->limit($step, $offset);
                                                  
                                                  $q->prepare();
                                                  $q->stmt->execute();
                                                  $rows = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                  
                                                  foreach ($rows as $row) {
                                                      // print_r($row);
                                                      $data = $modx->fromJSON($row['tv_value']);
                                                      if (is_array($data) && isset($data['video'])) {
                                                          $old['fileurl'] = $data['image'];
                                                          $old['filepath'] = str_replace(MODX_ASSETS_URL, MODX_ASSETS_PATH, $old['fileurl']);
                                                          
                                                          $resp = $modx->runProcessor('gallery/handle', array(
                                                              'resource' => $row['resource_id'],
                                                              'tv' => $row['tv_id'],
                                                              'video' => $data['video'],
                                                          ), array('processors_path' => MODX_CORE_PATH . 'components/videogallery/processors/mgr/'));
                                                          
                                                          $resp = $resp->response;
                                                          // print_r($resp['object']['image'].PHP_EOL);
                                                          
                                                          if ($resp['success']) {
                                                              if ($resource = $modx->getObject('modResource', array('id' => $row['resource_id']))) {
                                                                  $resource->setTVValue($row['tv_name'], $resp['object']['json']);
                                                                  $resource->save();
                                                                  
                                                                  // Если в настройках указано поле для хранения изображений - сохраним в него новый путь до картинки
                                                                  if ($field) {
                                                                      if (stristr($field, 'tv.')) {
                                                                          $resource->setTVValue(str_replace('tv.', '', $field), $resp['object']['image']);
                                                                      } else {
                                                                          $resource->set($field, $resp['object']['image']);
                                                                      }
                                                                      $resource->save();
                                                                  }
                                                                  
                                                                  // Удалим старое изображение
                                                                  if (file_exists($old['filepath']) && $old['fileurl'] != $resp['object']['image']) {
                                                                      @unlink($old['filepath']);
                                                                  }
                                                              }
                                                          }
                                                      }
                                                  }
                                                  
                                                  // Меняем offset
                                                  $_SESSION['console_offset'] = $offset + $step;
                                                  if ($_SESSION['console_offset'] >= $total) {
                                                    $sucsess = 100;
                                                    $_SESSION['Console']['completed'] = true;
                                                    unset($_SESSION['console_offset']);
                                                  } else {
                                                    $sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
                                                    $_SESSION['Console']['completed'] = false;
                                                  }
                                                  for ($i=0; $i<=100; $i++) {
                                                      if ($i <= $sucsess) {
                                                          print '=';
                                                      } else {
                                                          print '_';
                                                      }
                                                  }
                                                  print "\n";
                                                  print $sucsess.'% ('.$_SESSION['console_offset'].')'."\n\n";
                                                    Leo
                                                    Leo Старожил
                                                    04 июля 2016, 02:05
                                                    Спасибо!!! Все работает!!!
                                                      Владимир
                                                      Владимир Старожил
                                                      06 июля 2016, 12:02
                                                      Тоже пользуюсь Vimeo (в основном). Попробовал обновление всех превьюшек скриптом. Возник один вопрос. Илья, подскажи пожалуйста, кеш ресурса вроде не сбрасывается при этом обновлении?
                                                      У меня установлен ContentBlocks. Вчера прошелся по ресурсам через Консоль скриптом и заметил (не факт что это связано) что все что было в трех контекстах где есть поле videoGallery осталось с контентом только в кеше. Причем текст остался доступен для редактирования через quickupdate, но если полностью открыть для редактирования- контент пуст. Кеш у ContentBlocks отдельный. И что «забавно», сохранение в режиме quickupdate ни к чему не приводит- т.е. при переходе в режим нормального редактирования контент пуст.
                                                      Еще раз повторю, я не связываю возможное затирание контента с обновлением превьюшек, но вот вопрос в том может ли быть это связано? Конечно попробую сделать резервную копию и помучать все повторно.
                                                        Илья Уткин
                                                        Илья Уткин Администратор
                                                        06 июля 2016, 12:05
                                                        Ну, в скрипте контент ресурса не затрагивается, так что вряд ли связано со скриптом. Но я с ContentBlocks не работал, так что точно сказать не могу…
                                                          Владимир
                                                          Владимир Старожил
                                                          06 июля 2016, 12:14
                                                          Спасибо. Понимаю, компонент не всеми востребован и для наших соотечественников он явно не в «той» ценовой категории. Кстати modmore.com для разработчиков бесплатно его дают тестить.
                                                          Единственное обстоятельство, отчего я связываю два события- это контекстов у меня более 5ти, в двух нет совсем полей videoGallery — и контент не пострадал, а в трех есть связанные через Babel ресурсы, везде есть заглавное видео и текстовый контент. ContentBlocks использую во всех ресурсах. Проблема только в контекстах где и ContentBlocks и videoGallery вместе.
                                                          Скорее я пишу это на случай если у кого то такая же ситуация возникнет. Буду разбираться.
                                                            Leo
                                                            Leo Старожил
                                                            06 июля 2016, 21:48
                                                            А у меня ни чего не терялось. Обновилось все без ошибок. Но контент обычный, ни каких ContentBlocks не использую.
                                                      Leo
                                                      Leo Старожил
                                                      04 июля 2016, 02:06
                                                      Благодарю!
                                                    Ruslan Butakov
                                                    Ruslan Butakov Старожил
                                                    08 июля 2016, 08:59
                                                    Почему то вигурные скопки в БД пишутся
                                                    <code>
                                                    &#123
                                                    &#125
                                                    </code>
                                                      Konstantin
                                                      Konstantin Старожил
                                                      18 июля 2016, 19:45
                                                      Доступ запрещен пишет при добавлении ссылки www.youtube.com/watch?v=7-FjEtGm_o4 в переменную шаблона.
                                                      Есть какая нить инструкция по получению API ключа? Русская
                                                      Егор К.
                                                      Егор К. Старожил
                                                      23 августа 2016, 16:35
                                                      Здравствуйте уважаемые!
                                                      Установил компонент videoGallery.
                                                      Добавил дополнительное поле «video» с типом ввода «videoGallery»
                                                      Создал ресурс (документ) и вставил в него ссылку на видео YouTube через дополнительное поле «video» (в привьюшке отображается и картинка и видео).
                                                      Создал чанк «videoBlog»
                                                      {set $video_json = json_decode($_modx->resource.video, true)}
                                                      
                                                      {if $video_json.video?}
                                                      	
                                                      	<div><img src="{$video_json.image}" /></div>
                                                      	
                                                      	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
                                                      	
                                                      	{if $video_json.title?}
                                                      		<div><b>Название:</b> {$video_json.title}</div>
                                                      	{/if}
                                                      	{if $video_json.desc?}
                                                      		<div><b>Описание:</b> {$video_json.desc}</div>
                                                      	{/if}
                                                      	
                                                      {else}
                                                      	Видео нет
                                                      {/if}
                                                      Вызываю со страницы так
                                                      [[!pdoResources?
                                                      &parents=`15`
                                                      &includeContent=`1`
                                                      &tpl=`videoBlog`
                                                      ]]

                                                      Fenom выдает «Видео нет».

                                                      Помогите пожалуйста советом, что я делаю не так?
                                                        Павел Гвоздь
                                                        Павел Гвоздь Старожил
                                                        23 августа 2016, 18:33
                                                        Убрать:
                                                        {set $video_json = json_decode($_modx->resource.video, true)}
                                                        т.к. в pdoResources уже идёт распаковка из JSON.
                                                          Егор К.
                                                          Егор К. Старожил
                                                          23 августа 2016, 21:00
                                                          Урааа получилось!!! Вобщем Помог вариант
                                                          Василий Наумкин 10 сентября 2015, 14:36 # ↑ +1
                                                          И у pdoResources можно отключить декодирование JSON, если нужно — параметр &decodeJSON=`0`
                                                          Отключил в pdoResources декодирование JSON и дальше все по мануалу. И все заработало.
                                                          Всем спасибо!!!
                                                            Это сообщение было удалено
                                                              Это сообщение было удалено
                                                                Это сообщение было удалено
                                                                  Это сообщение было удалено
                                                                    Это сообщение было удалено
                                                                      Это сообщение было удалено
                                                                        Это сообщение было удалено
                                                                        Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                            Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                                Это сообщение было удалено
                                                                                  Это сообщение было удалено
                                                                                    Это сообщение было удалено
                                                                                      Это сообщение было удалено
                                                                                      Это сообщение было удалено
                                                                                      Это сообщение было удалено
                                                                                    Это сообщение было удалено
                                                                                      Это сообщение было удалено
                                                                                      Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                    Это сообщение было удалено
                                                                      Павел Гвоздь
                                                                      Павел Гвоздь Старожил
                                                                      24 августа 2016, 08:21
                                                                      Всмысле «вопрос закрыт»? Этот топик создавался не для твоего вопроса.

                                                                      Уважаемые модераторы, почистите, пожалуйста, данный топик от кучи флуда.
                                                                        Василий Наумкин
                                                                        Василий Наумкин Администратор
                                                                        24 августа 2016, 11:34
                                                                        Готово.
                                                                          Егор К.
                                                                          Егор К. Старожил
                                                                          24 августа 2016, 12:41
                                                                          Спасибо за компонент. Все установил на сайт. Видеогалерея работает. Сейчас стилизую и аякс вывод делаю.
                                                                          Круто!
                                                                          Владимир
                                                                          Владимир Старожил
                                                                          24 августа 2016, 08:22
                                                                          Пожалуйста. Но. Егор, честное слово, уже не первый раз лично я обращался к Павлу и всегда получал максимальное понимание. Имей больше такта и вежливости, в этом мире мы все равны и не особо друг другу обязаны.
                                                                            Егор К.
                                                                            Егор К. Старожил
                                                                            24 августа 2016, 08:31
                                                                            Вам повезло. Я ничем его не оскорбил.
                                                                          Максим
                                                                          Максим Старожил
                                                                          03 ноября 2016, 15:08
                                                                          Установил данный компонент, но при указании ссылки в доп поле выскакивает сообщение «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.» ключик ютуб в настройках указан. Что делаю не так?
                                                                            Павел Гвоздь
                                                                            Павел Гвоздь Старожил
                                                                            03 ноября 2016, 22:19
                                                                            А без ключа парсит?
                                                                              Максим
                                                                              Максим Старожил
                                                                              04 ноября 2016, 11:18
                                                                              А без ключа парсит…
                                                                              Спасибо
                                                                              rifo_BLR
                                                                              rifo_BLR Старожил
                                                                              27 апреля 2017, 14:50
                                                                              такая же фигня… без ключа парсит только id и emmber url/// а хотелось бы тайтл потянуть… Может кто-нибудь поможет???
                                                                              eflit
                                                                              eflit Старожил
                                                                              07 декабря 2016, 10:52
                                                                              Добрый день вот установил компонент для теста создал tv в ресурсе вставил ссылку все загрузилось как вывести видео на страницу подскажите действия
                                                                                Павел Гвоздь
                                                                                Павел Гвоздь Старожил
                                                                                07 декабря 2016, 11:15
                                                                                100 раз уже писали и обсуждали это. И даже в данной теме… поищите, почитайте…
                                                                                  eflit
                                                                                  eflit Старожил
                                                                                  07 декабря 2016, 11:21
                                                                                  создал чанк
                                                                                  {set $video_json = json_decode($_modx->resource.video, true)}
                                                                                  
                                                                                  {if $video_json.video?}
                                                                                  	
                                                                                  	<div><img src="{$video_json.image}" /></div>
                                                                                  	
                                                                                  	<iframe width="860" height="650" src="{$video_json['video']}" frameborder="0" allowfullscreen></iframe>
                                                                                  	
                                                                                  	{if $video_json.title?}
                                                                                  		<div><b>Название:</b> {$video_json.title}</div>
                                                                                  	{/if}
                                                                                  	{if $video_json.desc?}
                                                                                  		<div><b>Описание:</b> {$video_json.desc}</div>
                                                                                  	{/if}
                                                                                  	
                                                                                  {else}
                                                                                  	Видео нет
                                                                                  {/if}
                                                                                  вызываю
                                                                                  [[!pdoResources?
                                                                                  &parents=`3431`
                                                                                  &includeContent=`1`
                                                                                  &tpl=`videog`
                                                                                  ]]
                                                                                  но не чего не выводится
                                                                                    Павел Гвоздь
                                                                                    Павел Гвоздь Старожил
                                                                                    07 декабря 2016, 11:25
                                                                                    $_modx->resource.video — это поле текущего документа. Вам же надо получить поле документа из текущей итерации. Это делается подключением ТВ поля с видеороликом в выборку сниппета pdoResources через параметр includeTVs. Вы хотите, чтобы я вас обучал азам MODX? Хотя бы руководство какое почитали, чтоли…
                                                                                      god2016
                                                                                      god2016 Старожил
                                                                                      07 декабря 2016, 16:52
                                                                                      поставь себе Videobox и закрой вопрос, видео можно ставить в любом месте!
                                                                                        Владимир
                                                                                        Владимир Старожил
                                                                                        07 декабря 2016, 17:09
                                                                                        Вы правы, для ленивых и не желающих разбираться Videobox лучше, в нем уже куча скриптов и оформление вывода есть, т.е. как в Joomla прямо) Но тем и хорош MODX, что все расширения предлагают только основу, которую надо допилить и получить то что надо себе.
                                                                                        videoGallery — полностью функционален когда к одному ресурсу нужно добавить одно видео. Сам использую его и очень доволен.
                                                                                        Для множества видео для одного ресурса есть хороший но платный ResVideoGallery (тоже использую).
                                                                                        С Videobox был отрицательный опыт, но не буду утверждать, что сейчас он такой же кривой как на момент выхода.
                                                                                          god2016
                                                                                          god2016 Старожил
                                                                                          07 декабря 2016, 17:15
                                                                                          недавно Videobox были обновления, всё супер: )
                                                                                            Владимир
                                                                                            Владимир Старожил
                                                                                            07 декабря 2016, 17:18
                                                                                            Я не спорю) Пусть так.
                                                                                            Вы наверно хорошо знаете как с ним работать. Вопрос, он какие поля парсит? Время, дату, описание, заголовок, превьюшку-картинку? Картинку какого размера/формата кстати?
                                                                                              god2016
                                                                                              god2016 Старожил
                                                                                              07 декабря 2016, 17:21
                                                                                              здесь подробно modx.com/extras/package/videobox
                                                                                                Владимир
                                                                                                Владимир Старожил
                                                                                                07 декабря 2016, 17:27
                                                                                                ))) видел, спасибо, там очень не подробно как раз, думал вы по опыту подскажите.
                                                                                                Но если уже про подробно, то это тут и там же сообщается что он и для Joomla тоже, я этого раньше не видел, но очень идеологически это просматривалось, т.е. мне такое как раз не подходит, а вам самое то.
                                                                                                  god2016
                                                                                                  god2016 Старожил
                                                                                                  07 декабря 2016, 17:33
                                                                                                  зачем парить народ… не разобравшись! подробно здесь hitko.eu/videobox/getting-started#htk-videobox-for-modx
                                                                                                  hitko.eu/videobox/adapters
                                                                                                    Владимир
                                                                                                    Владимир Старожил
                                                                                                    07 декабря 2016, 17:40
                                                                                                    -
                                                                                                    Владимир
                                                                                                    Владимир Старожил
                                                                                                    07 декабря 2016, 17:40
                                                                                                    Что не разобравшись? Я вижу, что он и для MODX и для Joomla, а сделан именно идеологически по джумловски и говорю что все что делалось для Joomla (а я с ней знаком хорошо) мне не подходит, мне не нужны настолько готовые решения, что бы потом все сносить и делать свое. Вы видимо не понимаете о чем я. Ну да ладно. Предлагаю не продолжать.
                                                                                                    PS вообще тут уместнее было бы говорить о расширении videoGallery, а не флудить.
                                                                                                    Павел, извини, что-то полемика бестолковая вышла.
                                                                                                    Владимир
                                                                                                    Владимир Старожил
                                                                                                    07 декабря 2016, 18:13
                                                                                                    Что бы наш флуд обрел смысл:
                                                                                                    videoGallery
                                                                                                    — позволяет парсить и записывать базу 1. продолжительность ролика, 2. видео урл, 3. изображение превью, 4. тайтл, 5. дескрипшн и т.п.
                                                                                                    — поля можно указать\переопределить в настройках
                                                                                                    ______________
                                                                                                    Videobox
                                                                                                    не записывает в базу, просто выводит на страницах контент из различных медиахостингов
                                                                                                    — системные настройки отсутствуют
                                                                                Павел
                                                                                Павел Старожил
                                                                                09 января 2017, 16:14
                                                                                Привет. В консоли пытаюсь простую тв-ку получить, причем не от этого компонента, а простую, текстовую:
                                                                                $page = $modx->getObject('modResource', 1689);
                                                                                return $page->getTVValue('c_phone');
                                                                                А получаю такие ошибки:
                                                                                [2017-01-09 16:11:34] (ERROR @ /home/s7686/www/core/model/modx/modx.class.php : 1611)
                                                                                [OnTVOutputRenderList]
                                                                                [2017-01-09 16:11:34] (WARN @ /home/s7686/www/core/cache/includes/elements/modplugin/14.include.cache.php : 5)
                                                                                PHP notice: Undefined property: modX::$videogallery
                                                                                
                                                                                [2017-01-09 16:11:34] (WARN @ /home/s7686/www/core/cache/includes/elements/modplugin/14.include.cache.php : 11)
                                                                                PHP notice: Undefined index: mgr
                                                                                
                                                                                [2017-01-09 16:11:34] (WARN @ /home/s7686/www/core/components/videogallery/model/videogallery/videogallery.class.php : 56)
                                                                                PHP notice: Undefined property: videoGallery::$Tools
                                                                                
                                                                                [2017-01-09 16:11:34] (WARN @ /home/s7686/www/core/components/videogallery/model/videogallery/videogallery.class.php : 84)
                                                                                PHP notice: Undefined property: videoGallery::$Tools
                                                                                Модикс последней версии, автор выручай)
                                                                                  Павел Гвоздь
                                                                                  Павел Гвоздь Старожил
                                                                                  09 января 2017, 17:06
                                                                                  Доступ к личку кидайте.
                                                                                    Павел
                                                                                    Павел Старожил
                                                                                    10 января 2017, 12:10
                                                                                    Добавил в скайпе… или почту напишите пожалуйста, туда скину
                                                                                  rifo_BLR
                                                                                  rifo_BLR Старожил
                                                                                  27 апреля 2017, 14:54
                                                                                  Установил данный компонент, но при указании ссылки в доп поле выскакивает сообщение «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.» ключ апи ютуба в настройках указан. Что делаю не так? Без ключа парсит только id и emmber url, а хотелось бы тайтл потянуть… Может кто-нибудь поможет???
                                                                                    Павел Гвоздь
                                                                                    Павел Гвоздь Старожил
                                                                                    27 апреля 2017, 18:55
                                                                                    Видимо некорректно указали ключ или неверно настроили доступ к ключу АПИ на стороне гугла.
                                                                                      rifo_BLR
                                                                                      rifo_BLR Старожил
                                                                                      28 апреля 2017, 09:48
                                                                                      Я так и понял — создал апи с 2-х аккаунтов- вставил в системные- никак(( На душе стало грустно…
                                                                                        rifo_BLR
                                                                                        rifo_BLR Старожил
                                                                                        03 мая 2017, 10:15
                                                                                        а и кстати Павел, через https не работает — могу дать ссылку и доступ если интересно посмотреть.
                                                                                          Владимир
                                                                                          Владимир Старожил
                                                                                          03 мая 2017, 10:50
                                                                                          Постоянно использую videoGallery
                                                                                          у меня работает, просто прописал где нужно https в ссылках и все
                                                                                      Sergey Leleko
                                                                                      Sergey Leleko Старожил
                                                                                      01 сентября 2017, 08:03
                                                                                      Добрый вечер! Подскажите пожалуйста как именно можно получить картинку от видео, которое загружено в тв определенного ресурса?
                                                                                      Куда после распарсивания сохраняется картинка видео?
                                                                                      Владислав
                                                                                      Владислав Старожил
                                                                                      28 сентября 2017, 12:07
                                                                                      Установил videoGallery, вставляю ссылку ютуб, в ответ тишина. Просто тишина, ни сохранить ни превьюшки глянуть ни чего либо еще. Modx последней версии.
                                                                                        kaix8
                                                                                        kaix8 Старожил
                                                                                        10 ноября 2017, 15:51
                                                                                        Компонент отличный! Интересно, а можно ли сделать, чтобы к одному ресурсу можно было добавить, к примеру 4 видео? И чтобы они все обработались и выводились.
                                                                                          Прохор
                                                                                          Прохор Старожил
                                                                                          07 декабря 2017, 16:08
                                                                                          Всем доброго
                                                                                          С прописанным ключом от гугла признаков жизни не подает, пишет:
                                                                                          «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.»
                                                                                          Без ключа генерирует превьюху и в iframe корректная ссылка встает. У кого то есть мысли что я делаю не так?
                                                                                            Sergey Leleko
                                                                                            Sergey Leleko Старожил
                                                                                            12 декабря 2017, 14:26
                                                                                            Сегодня заметил такую вещь, ни с того ни с сего при попытке сохранить ресурс у которого есть ТВ типа videoGallery в консоль броузера пишется
                                                                                            vg-handler.js:107 [videoGallery] Неудалось распарсить JSON строку. Может это не JSON?
                                                                                            . Даже если поле оставить пустым. А если вставить ссылку на видео то превью там в ТВшке появляется, но в обоих случаях ресурс зависает на сохранении с ошибками
                                                                                            tinymce.min.js:11 POST http://****/connectors/index.php 500 (Internal Server Error)
                                                                                            r.submit_patch.a.submit.nodeType.a.submit.length.a._mceOldSubmit.a.submit @ tinymce.min.js:11
                                                                                            doFormUpload @ ext-all.js:21
                                                                                            request @ ext-all.js:21
                                                                                            run @ ext-all.js:21
                                                                                            (anonymous) @ ext-base.js:21
                                                                                            setTimeout (async)
                                                                                            defer @ ext-base.js:21
                                                                                            doAction @ ext-all.js:21
                                                                                            submit @ ext-all.js:21
                                                                                            submit @ modx.jsgrps-min.js:4
                                                                                            handleClick @ modx.jsgrps-min.js:3
                                                                                            onClick @ ext-all.js:21
                                                                                            I @ ext-all.js:21
                                                                                            ext-all.js:21 Uncaught {message: "JsonReader.read: Json object not found"}
                                                                                              varanika
                                                                                              varanika Старожил
                                                                                              09 июля 2018, 18:09
                                                                                              Людиии… У меня у первой при вставке ссылки пишет Video Id not valid? Причем десяток раз в системных настройках перепроверила названия полей… Для примера обычная ссылка, советский мультик www.youtube.com/watch?v=Gl1_uGW_Teo :)
                                                                                                Павел Гвоздь
                                                                                                Павел Гвоздь Старожил
                                                                                                09 июля 2018, 22:12
                                                                                                А другие ссылки на ютуб норм обрабатывает? Только с этим роликом проблема?
                                                                                                  varanika
                                                                                                  varanika Старожил
                                                                                                  09 июля 2018, 23:38
                                                                                                  Ни один ролик. Причем и ключ верно скопировала, и тв были прописаны. Ошибки лезли 2. Сейчас повторила прием — ни одной свежей ошибки не вылезло.
                                                                                                  В итоге я пока это дело отложила, ибо так и не поняла что ему не по душе :)


                                                                                                    Павел Гвоздь
                                                                                                    Павел Гвоздь Старожил
                                                                                                    10 июля 2018, 08:05
                                                                                                    «Ошибка сжатия» к videoGallery отношения не имеет…
                                                                                                    Попробуйте без API ключа в настройках.
                                                                                                      varanika
                                                                                                      varanika Старожил
                                                                                                      10 июля 2018, 09:04
                                                                                                      Я знаю, что не имеет, я специально скрин со временем внизу делала.
                                                                                                      Подтянулся сам превью и только поле с ID. частично завелся :)
                                                                                                      Ну и ладно, я уже и без оного реализовала страницу, просто что то нагуглила только 1 такую ошибку на форуме и там тоже не было решения, вот, заинтересовало.

                                                                                                      Владимир Ребров
                                                                                                      13 декабря 2019, 19:21
                                                                                                      Такая же ошибка. Причем образовалась на ровном месте. Никто в админку не заходил вообще. Ключ на месте. Удаляю ключ — всё работает (ну кроме получения данных о видео, конечно), с ключом — Video ID not valid.
                                                                                                        Марина Шипилова
                                                                                                        04 февраля 2020, 01:27
                                                                                                        Нашли решение? Такая же фигня((
                                                                                                  varanika
                                                                                                  varanika Старожил
                                                                                                  09 июля 2018, 23:41


                                                                                                  И так тот же эффект :)
                                                                                                    Павел
                                                                                                    Павел Старожил
                                                                                                    20 сентября 2018, 22:13
                                                                                                    Павел, привет. А возможно компонент подружить с MIGX? Уж очень не хватает этого)
                                                                                                      Василий Столейков
                                                                                                      29 октября 2018, 08:23
                                                                                                      Есть английский лексикон, но текст в нём продублирован с русского.
                                                                                                      Я перевёл себе через translate.yandex.ru/ но хотелось бы из коробки.
                                                                                                      Денис
                                                                                                      Денис Старожил
                                                                                                      29 октября 2018, 09:11
                                                                                                      Доброе утро! При вставке ссылки на видео youtube, у 10-15% ресурсов не подгружается превью, написано «Нет изображения» так же выводится и на странице. скрин В чем может быть причина?
                                                                                                        Павел Гвоздь
                                                                                                        Павел Гвоздь Старожил
                                                                                                        29 октября 2018, 19:35
                                                                                                        Не знаю, надо дебажить. Опишите, как это воспроизвести.
                                                                                                      Константин
                                                                                                      Константин Старожил
                                                                                                      03 ноября 2018, 22:34
                                                                                                      Добрый вечер. Выставил в настройках в качестве поля, где будет путь к изображению ролика, доп. поле tv.tv_img. А оно у меня привязано к источнику файлов Images, имеющему basePath и baseUrl assets/img/.
                                                                                                      В итоге к ссылке на изображение, которая формируется компонентом, впереди добавляется assets/img/ и на странице я получаю некорректный путь:
                                                                                                      assets/img//assets/videoGallery/5/8/cf6c950d0f7ffec246b741ea88a833d7.jpg
                                                                                                      Я что-то неправильно делаю?
                                                                                                      Решение пока нашел такое:
                                                                                                      <img src="{$_modx->resource.img | replace : "assets/img//" : ""}" alt="">
                                                                                                      Тогда картинка выводится норм. Но может есть другое решение, как учесть basePath и baseUrl других источников файлов?
                                                                                                        UDAV
                                                                                                        UDAV Старожил
                                                                                                        20 декабря 2018, 11:28
                                                                                                        Почему то не подгружается название и описание к видео prntscr.com/lxcbxl
                                                                                                          Сергей
                                                                                                          Сергей Старожил
                                                                                                          31 января 2019, 01:03
                                                                                                          Добрый вечер. Не подскажете, как вывести продолжительность видео в секундах? Такой формат необходим для разметки Open Graph.
                                                                                                            Павел Гвоздь
                                                                                                            Павел Гвоздь Старожил
                                                                                                            31 января 2019, 08:36
                                                                                                            Распечатайте поле с массивом видео и гляньте.
                                                                                                            {$_modx->resource.video | print}
                                                                                                            Алексей
                                                                                                            Алексей Старожил
                                                                                                            20 февраля 2019, 17:19
                                                                                                            Почему-то отказывается с ютуба парсить ролики, хотя год назад всё работало.
                                                                                                            Чекнул файлик github.com/Pathologic/SimpleTube/blob/master/assets/snippets/simpletube/lib/Panorama/Video/Youtube.php
                                                                                                            из исходников, он изменился, но если его заменить, то вместо ошибки Video Id not valid. выскакивает 500: Internal Server Error
                                                                                                            ну а если точнее:
                                                                                                            [error] 209#0: *1048 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Declaration of Panorama\Video\Youtube::__construct($url, array $options = Array) must be compatible with Panorama\Video\VideoInterface::__construct($url, $params = Array) in /www/core/components/videogallery/lib/Panorama/Video/Youtube.php on line 18" while reading response header from upstream,
                                                                                                            
                                                                                                              Denis
                                                                                                              Denis Старожил
                                                                                                              06 июня 2019, 14:19
                                                                                                              Приветствую
                                                                                                              Столкнулся с проблемой.
                                                                                                              Плагин при парсинге роликов прописывает пути к ролику через http:/

                                                                                                              Сайт использует https, и как результат видео не работает.
                                                                                                              В настройках ничего нет.
                                                                                                              Кто нибудь решал эту проблему?
                                                                                                                Roman
                                                                                                                Roman Старожил
                                                                                                                17 января 2020, 15:55
                                                                                                                Приветствую! У меня в продолжительность ролика попадают данные вида: PT02M07S
                                                                                                                Что это за формат?
                                                                                                                  Roman
                                                                                                                  Roman Старожил
                                                                                                                  17 января 2020, 16:44
                                                                                                                  UDP: PT — не знаю что. 02M минуты 07S — сек. Не доперло изначально, думал что это за формат странный какой то XD.
                                                                                                                  {$videoDuration | replace : "PT" : "" | replace : "M" : ":" | replace : "S" : ""}
                                                                                                                  Roman
                                                                                                                  Roman Старожил
                                                                                                                  20 января 2020, 12:53
                                                                                                                  Изваял маленький скрипт, вытаскивающий кол-во просмотров
                                                                                                                  if(!$videoid)
                                                                                                                  {
                                                                                                                    $output = 'Введите ID видео';
                                                                                                                    return $output;
                                                                                                                  }
                                                                                                                  $tpl = $modx->getOption('tpl', $scriptProperties, 'tpl.videoGallery.views');
                                                                                                                  
                                                                                                                    $Youtube_API_KEY = $modx->getOption('videogallery_youtube_api_key');
                                                                                                                      $json = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id=" . $videoid . "&key=". $Youtube_API_KEY );
                                                                                                                      $jsonData = json_decode($json);
                                                                                                                      $views = $jsonData->items[0]->statistics->viewCount;
                                                                                                                  
                                                                                                                      $output = $modx->getChunk($tpl, array(
                                                                                                                          'views' => $views
                                                                                                                      ));    
                                                                                                                  
                                                                                                                      return  $output;
                                                                                                                  Мой первый скрипт. Возможно говнокод — но он работает XD.
                                                                                                                  UPD: хотелось бы увидеть в новой обнове videoGallery возможность подтягивать просмотры с видеороликов.
                                                                                                                    Елизавета
                                                                                                                    Елизавета Старожил
                                                                                                                    09 февраля 2021, 22:07
                                                                                                                    Добрый вечер, Павел.

                                                                                                                    Возможно ли этот компонент использовать для создания функционала для добавления видеообзора в карточку товара (в галерею)?
                                                                                                                      Яна Митрофанова
                                                                                                                      05 мая 2021, 18:58
                                                                                                                      Также была ошибка «Не удалось обработать ответ от сервера», после переезда на другой хостинг, помогло изменение версии php с 7.2 на 7.3
                                                                                                                        Юрий Ханжин
                                                                                                                        Юрий Ханжин Старожил
                                                                                                                        21 сентября 2021, 10:05
                                                                                                                        Не появилась возможность добавления через MIGX?
                                                                                                                          kgb3000
                                                                                                                          kgb3000 Старожил
                                                                                                                          20 октября 2021, 21:33
                                                                                                                          где находится настройка пути к хранению превью?
                                                                                                                            kalisto
                                                                                                                            kalisto Старожил
                                                                                                                            01 декабря 2021, 10:10
                                                                                                                            Ранее работало все, а сейчас выдает
                                                                                                                            ERROR /home/c/cv08546/academy-kvant-psi.ru/core/components/pdotools/model/pdotools/pdotools.class.php 999
                                                                                                                            Unexpected token ':' in 76c458169bfd754d28bce3b6036afd55 line 13, near '{«video»:' < — there

                                                                                                                            {set $video_json = json_decode($_modx->resource.video, true)}
                                                                                                                                      {if $_modx->resource.video ?}
                                                                                                                                        <div class="blog__img">
                                                                                                                                          <div class="blog__video pos-relative">
                                                                                                                                            <img src="{$video_json.image}" />
                                                                                                                                            <a class="popup-icon vinobox-popup pos-absolute" data-autoplay="true" data-vbtype="video" href="{$video_json['video']}"><i class="lab la-youtube"></i></a>
                                                                                                                                          </div>
                                                                                                                                        </div>
                                                                                                                                      {/if}
                                                                                                                            Прошу помощи.
                                                                                                                              Beegart
                                                                                                                              Beegart Старожил
                                                                                                                              24 декабря 2021, 12:46
                                                                                                                              Здравствуйте, как избравиться от ошибки при установке?

                                                                                                                              modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace videogallery to the routing based system.
                                                                                                                                Иван Бочкарев
                                                                                                                                Иван Бочкарев Администратор
                                                                                                                                27 декабря 2021, 07:02
                                                                                                                                Это не ошибка, а предупреждение.

                                                                                                                                Для отключения такого рода предупреждений установите системную настройку log_deprecated в состояние Нет
                                                                                                                                Сергей Карпович
                                                                                                                                23 июля 2026, 17:16
                                                                                                                                Невозможно установить пакет с подписью: videogallery-1.4.0-beta

                                                                                                                                Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.resolve.old.resolver:38: Undefined constant "PKG_NAME_LOWER"
                                                                                                                                Невозможно установить пакет с подписью: videogallery-1.4.0-beta
                                                                                                                                MODX 3.2.2
                                                                                                                                PHP 8.2

                                                                                                                                В тройке не поддерживается?
                                                                                                                                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                                                                                                  191