[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
17
14 664
+14
Поблагодарить автора Отправить деньги

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

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

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

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

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

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

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

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

        Данные запрашиваются при событии jquery — «input». А при сохранении срабатывает плагин, который удаляет старые не используемые изображения из папки, оставляя только то, что используется в Json массиве в поле с типом «videoGallery».
          Максим
          23 августа 2015, 17:38
          0
          Единственное я скрыл поле с массивом json, наверное всё же нужно было оставить его для наглядности того, что оно есть?
          Нет, такое поле точно лишнее (:
        Павел Гвоздь
        23 августа 2015, 16:01
        0
        Пример обработки 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
          1
          +1
          Плохой пример, советую переписать. Переменная {$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
          0
          Автору на заметку getYoutube.
          Так же Создает галерею из минусов компонента
          — Разработка заброшена но работает
          — Не поддерживает getPage pdoPage (собственная пагинация)
          — Есть два варианта работы либо указывается массив имен видео роликов ( прямо в коде что фигово ), 2 вариант указываться имя канала — глючит после некоторого времени начинает выводить только 4 1 -вых видео).
          Допилить бы этому компоненту пагинацию нормалдьную устранить баги с каналом и нормальнуюю админку и красота была бы.

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

          ЧЯДНТ?
            Павел Гвоздь
            10 сентября 2015, 09:56
            0
            Попробуй включить 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
              +2
              Простите, ошибка идиотская у меня: забыл поменять тв!
                Павел Гвоздь
                10 сентября 2015, 13:51
                0
                Извиняюсь. Дело не в обновлении pdoTools, а в его особенности. Точнее дело обстоит так:

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

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

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

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

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

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

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

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

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

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

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

                        Как вариант, обработать строку Феномом. У него есть модификатор 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
                          0
                          Да, спасибо, вариант
                          Однако, поле с id видео предусмотрите в следующей версии, очень оно будет полезным.
                      Владимир
                      02 октября 2015, 11:06
                      0
                      Что бы при выводе в шаблоне раскидать по местам
                      <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
                  Сергей
                  11 ноября 2015, 15:10
                  0
                  как удалить вставленный в тв поле ролик, если он больше не нужен?
                    Павел Гвоздь
                    11 ноября 2015, 15:41
                    0
                    Это не предусмотрел я. Точнее не сделал умышленно, чтобы не путать людей лишним полем с JSON инфой. Я подумаю над этим в след версии. А пока только вот так:
                      Сергей
                      11 ноября 2015, 18:57
                      0
                      Перезаписать пустым не получается, ролик все равно остается.

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

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

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

                            Получается что видео добавляется в соответствующий ресурс в каждом контексте?
                            То есть, если три контекста = три языка, то видео добавляем в трех местах?
                    Федор
                    25 декабря 2015, 17:45
                    0
                    А можно для дебилов, как правильно вызывать конструкцию в pdoresources? в каком параметре… покажите пример плиз, а то у меня выгружается то массив кода запрос-ответ, то «сайт в сайте» в том месте, где должен выгружаться видео ролик.
                      Павел Гвоздь
                      25 декабря 2015, 17:58
                      0
                      Свой код в студию.
                        Федор
                        25 декабря 2015, 18:06
                        0
                        Ну я так понимаю через &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
                          0
                          Слушайте, я наверное сильно затупил, все что тут написано это для вывода галереи видео, а мне нужно тупо в шаблон с новостью вставить ролик, мне тупо вывести TV
                          TV поле с типом videoGallery.
                          на странице? :D
                            Федор
                            25 декабря 2015, 19:05
                            0
                            В общем ничего у меня не выходит, скажите пожалуйста, как и куда нужно все это вставлять, чтобы на странице можно было посмотреть видео…
                              Павел Гвоздь
                              25 декабря 2015, 19:12
                              0
                              Для начала надо указать в настройках пакета тв поля, куда будут записываться распарсенные данные видео ролика, в частности embed url. Это не тот тв, у которого тип videoGallery, это другой тв, желательно с типом «текстовая строка». Далее добавить видео и проконтролировать, чтобы твой тв, который ты указал в настройках был заполнен именно embed url. После выводишь этот свой тв на странице в ифрейме, наподобие примера с феномом.
                                Федор
                                25 декабря 2015, 19:15
                                0
                                Я все настроил… только по ходу везде указал значение videoGallery. + У меня это вставляется на страницах, реализованных через тикеты, то есть наверное мне еще jevix нужно отрубить… соответственно другой тв у меня video, как в примере
                                  Федор
                                  25 декабря 2015, 20:12
                                  0
                                  в общем, я совсем запутался, вместо видео выводится пустое место, в коде же — есть 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
                                    0
                                    Далее добавить видео и проконтролировать, чтобы твой тв, который ты указал в настройках был заполнен именно embed url
                                    не загружается :( пустое поле после вставки и сохранения документа
                                      Павел Гвоздь
                                      25 декабря 2015, 20:32
                                      0
                                      Кинь доступ в ЛС.
                                        Федор
                                        25 декабря 2015, 20:36
                                        0
                                        Вместо «Не трогать! Заполняется автоматически.» лучше сделать эти поля 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
                                          +1
                                          Пример чего? Как вывести ТВ поле на странице, чтоли?..
                                            Федор
                                            25 декабря 2015, 20:41
                                            0
                                            да нет, я думал может быть, тут что-то не написано и нужно выводить, как у Василия было, примерно так —
                                            [[!getVideo?url=`[[+tv.studioVideo]]`&return=`image`]]
                                            кажется что-то пошло не так, все заново проделаю сейчас, не может быть, что поле не заполняется со ссылкой, у меня даже название и описание в поля заполняются… а тут такое
                                            Павел Гвоздь
                                            25 декабря 2015, 20:40
                                            +1
                                            <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
                                              -2
                                              В общем, заработало, правда криво — ember url упорно не хочет вставлять ссылку в создаваемое доп поле, как я его только не называл.., а в introtext вставилось без проблем и вывелось на страницу, но если вы используете Tickets в построении ветви вашего сайта поставьте галочки на «выполнять теги Modx» и «Отключить Jevix». Это на всякий, вдруг кто столкнется с такой же проблемой.

                                              Но я так и не смог решить 2ю проблему, у меня для отображения превью к новостям используется TV поле image, и я хотел, чтобы при вставке видео, картинка добавлялась в это поле, вбил это тв в настройки но ничего не выходило. Теперь я понимаю, что у меня не только картинка в нужное поле не вставлялась, потому и не выводилась но еще и ссылка на видео. Промучался весь день, чтобы найти проблему, может быть вы знаете почему такое происходит?
                              Марти
                              09 марта 2016, 09:00
                              0
                              Возможно ли использовать вместе с 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
                                0
                                Извините, поторопился.
                                  Марина Шипилова
                                  23 мая 2016, 17:42
                                  0
                                  Никак не могу понять, почему описание видео не вставляется в content. То есть вот в introtext, tv и другие поля вставляется, а туда нет. Оно так и не должно вставляться или что-то я не так делаю?
                                    Павел Гвоздь
                                    23 мая 2016, 18:46
                                    0
                                    Скорее всего это из-за какого-то редактора, который навешивается на оригинальное поле контента. Я не тестировал пакет таким образом.
                                      Марина Шипилова
                                      23 мая 2016, 19:34
                                      0
                                      Стоит markitup, но и без него не получается. То есть если создать tv — тип ввода — текстовый редактор — то тоже туда норм вставляется.
                                    Pavel Kravchuk
                                    28 мая 2016, 21:53
                                    0
                                    подскажите плиз, можно ли использовать videoGallery в migx для создания видео галлереи?
                                    Вот мой код для создания галлереи:
                                    [
                                    {"caption":"Add Item", "fields": [
                                        {"field":"title","caption":"Title"},
                                    {"field":"video","caption":"Gallery","inputTV":"migx_video_gallery"}    
                                    ]}
                                    ]

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

                                      — Добавлена возможность указывать ссылку на видео с канала в Vimeo: _ttps://vimeo.com/channels/{channelname}/{videoid}
                                      — Изображения с Vimeo теперь сохраняются в максимально возможном разрешении
                                        Владимир
                                        08 июня 2016, 07:23
                                        +2
                                        Таааак)))) Прекрасно!
                                        А теперь подскажи, у тебя так же QIWI для спасибо или уже нормально с Яндекс кошельком?
                                          Павел Гвоздь
                                          08 июня 2016, 21:43
                                          +1
                                          Нормально уже. :) Пиши в личку, если что.
                                      Leo
                                      Leo
                                      02 июля 2016, 05:59
                                      +1
                                      А можно ли обновить все превьюшки Vimeo через консоль (Console)? Что то не придумаю как.
                                        Павел Гвоздь
                                        03 июля 2016, 04:44
                                        1
                                        +1
                                        Можно. Надо сделать выборку и перегенерировать каждый видеоролик заново.
                                        Набросал код, который обновит видео превьюхи у всех ресурсов. Если надо разграничить только для сервиса 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
                                          3
                                          +2
                                          Возможно, вот такой вариант сможет и из 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
                                            0
                                            Спасибо!!! Все работает!!!
                                              Владимир
                                              06 июля 2016, 12:02
                                              0
                                              Тоже пользуюсь Vimeo (в основном). Попробовал обновление всех превьюшек скриптом. Возник один вопрос. Илья, подскажи пожалуйста, кеш ресурса вроде не сбрасывается при этом обновлении?
                                              У меня установлен ContentBlocks. Вчера прошелся по ресурсам через Консоль скриптом и заметил (не факт что это связано) что все что было в трех контекстах где есть поле videoGallery осталось с контентом только в кеше. Причем текст остался доступен для редактирования через quickupdate, но если полностью открыть для редактирования- контент пуст. Кеш у ContentBlocks отдельный. И что «забавно», сохранение в режиме quickupdate ни к чему не приводит- т.е. при переходе в режим нормального редактирования контент пуст.
                                              Еще раз повторю, я не связываю возможное затирание контента с обновлением превьюшек, но вот вопрос в том может ли быть это связано? Конечно попробую сделать резервную копию и помучать все повторно.
                                                Илья Уткин
                                                06 июля 2016, 12:05
                                                0
                                                Ну, в скрипте контент ресурса не затрагивается, так что вряд ли связано со скриптом. Но я с ContentBlocks не работал, так что точно сказать не могу…
                                                  Владимир
                                                  06 июля 2016, 12:14
                                                  +1
                                                  Спасибо. Понимаю, компонент не всеми востребован и для наших соотечественников он явно не в «той» ценовой категории. Кстати modmore.com для разработчиков бесплатно его дают тестить.
                                                  Единственное обстоятельство, отчего я связываю два события- это контекстов у меня более 5ти, в двух нет совсем полей videoGallery — и контент не пострадал, а в трех есть связанные через Babel ресурсы, везде есть заглавное видео и текстовый контент. ContentBlocks использую во всех ресурсах. Проблема только в контекстах где и ContentBlocks и videoGallery вместе.
                                                  Скорее я пишу это на случай если у кого то такая же ситуация возникнет. Буду разбираться.
                                                    Leo
                                                    Leo
                                                    06 июля 2016, 21:48
                                                    0
                                                    А у меня ни чего не терялось. Обновилось все без ошибок. Но контент обычный, ни каких ContentBlocks не использую.
                                              Leo
                                              Leo
                                              04 июля 2016, 02:06
                                              0
                                              Благодарю!
                                            Ruslan Butakov
                                            08 июля 2016, 08:59
                                            0
                                            Почему то вигурные скопки в БД пишутся
                                            <code>
                                            &#123
                                            &#125
                                            </code>
                                              Konstantin
                                              18 июля 2016, 19:45
                                              0
                                              Доступ запрещен пишет при добавлении ссылки www.youtube.com/watch?v=7-FjEtGm_o4 в переменную шаблона.
                                              Есть какая нить инструкция по получению API ключа? Русская
                                              Егор К.
                                              23 августа 2016, 16:35
                                              0
                                              Здравствуйте уважаемые!
                                              Установил компонент 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
                                                +1
                                                Убрать:
                                                {set $video_json = json_decode($_modx->resource.video, true)}
                                                т.к. в pdoResources уже идёт распаковка из JSON.
                                                  Егор К.
                                                  23 августа 2016, 21:00
                                                  0
                                                  Урааа получилось!!! Вобщем Помог вариант
                                                  Василий Наумкин 10 сентября 2015, 14:36 # ↑ +1
                                                  И у pdoResources можно отключить декодирование JSON, если нужно — параметр &decodeJSON=`0`
                                                  Отключил в pdoResources декодирование JSON и дальше все по мануалу. И все заработало.
                                                  Всем спасибо!!!
                                                    Это сообщение было удалено
                                                      Это сообщение было удалено
                                                        Это сообщение было удалено
                                                          Это сообщение было удалено
                                                            Это сообщение было удалено
                                                              Это сообщение было удалено
                                                                Это сообщение было удалено
                                                                Это сообщение было удалено
                                                                  Это сообщение было удалено
                                                                    Это сообщение было удалено
                                                                      Это сообщение было удалено
                                                                        Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                            Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                            Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                  Это сообщение было удалено
                                                            Это сообщение было удалено
                                                              Павел Гвоздь
                                                              24 августа 2016, 08:21
                                                              +2
                                                              Всмысле «вопрос закрыт»? Этот топик создавался не для твоего вопроса.

                                                              Уважаемые модераторы, почистите, пожалуйста, данный топик от кучи флуда.
                                                                Василий Наумкин
                                                                24 августа 2016, 11:34
                                                                +4
                                                                Готово.
                                                                  Егор К.
                                                                  24 августа 2016, 12:41
                                                                  0
                                                                  Спасибо за компонент. Все установил на сайт. Видеогалерея работает. Сейчас стилизую и аякс вывод делаю.
                                                                  Круто!
                                                                  Владимир
                                                                  24 августа 2016, 08:22
                                                                  +1
                                                                  Пожалуйста. Но. Егор, честное слово, уже не первый раз лично я обращался к Павлу и всегда получал максимальное понимание. Имей больше такта и вежливости, в этом мире мы все равны и не особо друг другу обязаны.
                                                                    Егор К.
                                                                    24 августа 2016, 08:31
                                                                    0
                                                                    Вам повезло. Я ничем его не оскорбил.
                                                                  Максим
                                                                  03 ноября 2016, 15:08
                                                                  1
                                                                  0
                                                                  Установил данный компонент, но при указании ссылки в доп поле выскакивает сообщение «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.» ключик ютуб в настройках указан. Что делаю не так?
                                                                    Павел Гвоздь
                                                                    03 ноября 2016, 22:19
                                                                    0
                                                                    А без ключа парсит?
                                                                      Максим
                                                                      04 ноября 2016, 11:18
                                                                      0
                                                                      А без ключа парсит…
                                                                      Спасибо
                                                                      rifo_BLR
                                                                      27 апреля 2017, 14:50
                                                                      0
                                                                      такая же фигня… без ключа парсит только id и emmber url/// а хотелось бы тайтл потянуть… Может кто-нибудь поможет???
                                                                      eflit
                                                                      07 декабря 2016, 10:52
                                                                      0
                                                                      Добрый день вот установил компонент для теста создал tv в ресурсе вставил ссылку все загрузилось как вывести видео на страницу подскажите действия
                                                                        Павел Гвоздь
                                                                        07 декабря 2016, 11:15
                                                                        0
                                                                        100 раз уже писали и обсуждали это. И даже в данной теме… поищите, почитайте…
                                                                          eflit
                                                                          07 декабря 2016, 11:21
                                                                          0
                                                                          создал чанк
                                                                          {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
                                                                            +2
                                                                            $_modx->resource.video — это поле текущего документа. Вам же надо получить поле документа из текущей итерации. Это делается подключением ТВ поля с видеороликом в выборку сниппета pdoResources через параметр includeTVs. Вы хотите, чтобы я вас обучал азам MODX? Хотя бы руководство какое почитали, чтоли…
                                                                              god2016
                                                                              07 декабря 2016, 16:52
                                                                              -2
                                                                              поставь себе Videobox и закрой вопрос, видео можно ставить в любом месте!
                                                                                Владимир
                                                                                07 декабря 2016, 17:09
                                                                                0
                                                                                Вы правы, для ленивых и не желающих разбираться Videobox лучше, в нем уже куча скриптов и оформление вывода есть, т.е. как в Joomla прямо) Но тем и хорош MODX, что все расширения предлагают только основу, которую надо допилить и получить то что надо себе.
                                                                                videoGallery — полностью функционален когда к одному ресурсу нужно добавить одно видео. Сам использую его и очень доволен.
                                                                                Для множества видео для одного ресурса есть хороший но платный ResVideoGallery (тоже использую).
                                                                                С Videobox был отрицательный опыт, но не буду утверждать, что сейчас он такой же кривой как на момент выхода.
                                                                                  god2016
                                                                                  07 декабря 2016, 17:15
                                                                                  -1
                                                                                  недавно Videobox были обновления, всё супер: )
                                                                                    Владимир
                                                                                    07 декабря 2016, 17:18
                                                                                    0
                                                                                    Я не спорю) Пусть так.
                                                                                    Вы наверно хорошо знаете как с ним работать. Вопрос, он какие поля парсит? Время, дату, описание, заголовок, превьюшку-картинку? Картинку какого размера/формата кстати?
                                                                                      god2016
                                                                                      07 декабря 2016, 17:21
                                                                                      0
                                                                                      здесь подробно modx.com/extras/package/videobox
                                                                                        Владимир
                                                                                        07 декабря 2016, 17:27
                                                                                        0
                                                                                        ))) видел, спасибо, там очень не подробно как раз, думал вы по опыту подскажите.
                                                                                        Но если уже про подробно, то это тут и там же сообщается что он и для Joomla тоже, я этого раньше не видел, но очень идеологически это просматривалось, т.е. мне такое как раз не подходит, а вам самое то.
                                                                                          god2016
                                                                                          07 декабря 2016, 17:33
                                                                                          -1
                                                                                          зачем парить народ… не разобравшись! подробно здесь hitko.eu/videobox/getting-started#htk-videobox-for-modx
                                                                                          hitko.eu/videobox/adapters
                                                                                            Владимир
                                                                                            07 декабря 2016, 17:40
                                                                                            0
                                                                                            -
                                                                                            Владимир
                                                                                            07 декабря 2016, 17:40
                                                                                            0
                                                                                            Что не разобравшись? Я вижу, что он и для MODX и для Joomla, а сделан именно идеологически по джумловски и говорю что все что делалось для Joomla (а я с ней знаком хорошо) мне не подходит, мне не нужны настолько готовые решения, что бы потом все сносить и делать свое. Вы видимо не понимаете о чем я. Ну да ладно. Предлагаю не продолжать.
                                                                                            PS вообще тут уместнее было бы говорить о расширении videoGallery, а не флудить.
                                                                                            Павел, извини, что-то полемика бестолковая вышла.
                                                                                            Владимир
                                                                                            07 декабря 2016, 18:13
                                                                                            0
                                                                                            Что бы наш флуд обрел смысл:
                                                                                            videoGallery
                                                                                            — позволяет парсить и записывать базу 1. продолжительность ролика, 2. видео урл, 3. изображение превью, 4. тайтл, 5. дескрипшн и т.п.
                                                                                            — поля можно указать\переопределить в настройках
                                                                                            ______________
                                                                                            Videobox
                                                                                            не записывает в базу, просто выводит на страницах контент из различных медиахостингов
                                                                                            — системные настройки отсутствуют
                                                                        Павел
                                                                        09 января 2017, 16:14
                                                                        0
                                                                        Привет. В консоли пытаюсь простую тв-ку получить, причем не от этого компонента, а простую, текстовую:
                                                                        $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
                                                                          0
                                                                          Доступ к личку кидайте.
                                                                            Павел
                                                                            10 января 2017, 12:10
                                                                            0
                                                                            Добавил в скайпе… или почту напишите пожалуйста, туда скину
                                                                          rifo_BLR
                                                                          27 апреля 2017, 14:54
                                                                          0
                                                                          Установил данный компонент, но при указании ссылки в доп поле выскакивает сообщение «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.» ключ апи ютуба в настройках указан. Что делаю не так? Без ключа парсит только id и emmber url, а хотелось бы тайтл потянуть… Может кто-нибудь поможет???
                                                                            Павел Гвоздь
                                                                            27 апреля 2017, 18:55
                                                                            +1
                                                                            Видимо некорректно указали ключ или неверно настроили доступ к ключу АПИ на стороне гугла.
                                                                              rifo_BLR
                                                                              28 апреля 2017, 09:48
                                                                              0
                                                                              Я так и понял — создал апи с 2-х аккаунтов- вставил в системные- никак(( На душе стало грустно…
                                                                                rifo_BLR
                                                                                03 мая 2017, 10:15
                                                                                0
                                                                                а и кстати Павел, через https не работает — могу дать ссылку и доступ если интересно посмотреть.
                                                                                  Владимир
                                                                                  03 мая 2017, 10:50
                                                                                  0
                                                                                  Постоянно использую videoGallery
                                                                                  у меня работает, просто прописал где нужно https в ссылках и все
                                                                              Sergey Leleko
                                                                              01 сентября 2017, 08:03
                                                                              0
                                                                              Добрый вечер! Подскажите пожалуйста как именно можно получить картинку от видео, которое загружено в тв определенного ресурса?
                                                                              Куда после распарсивания сохраняется картинка видео?
                                                                              Владислав
                                                                              28 сентября 2017, 12:07
                                                                              0
                                                                              Установил videoGallery, вставляю ссылку ютуб, в ответ тишина. Просто тишина, ни сохранить ни превьюшки глянуть ни чего либо еще. Modx последней версии.
                                                                                kaix8
                                                                                10 ноября 2017, 15:51
                                                                                0
                                                                                Компонент отличный! Интересно, а можно ли сделать, чтобы к одному ресурсу можно было добавить, к примеру 4 видео? И чтобы они все обработались и выводились.
                                                                                  Прохор
                                                                                  07 декабря 2017, 16:08
                                                                                  0
                                                                                  Всем доброго
                                                                                  С прописанным ключом от гугла признаков жизни не подает, пишет:
                                                                                  «Неудалось обработать ответ от сервера. Попробуйте вставить ссылку на видеоролик заново.»
                                                                                  Без ключа генерирует превьюху и в iframe корректная ссылка встает. У кого то есть мысли что я делаю не так?
                                                                                    Sergey Leleko
                                                                                    12 декабря 2017, 14:26
                                                                                    0
                                                                                    Сегодня заметил такую вещь, ни с того ни с сего при попытке сохранить ресурс у которого есть ТВ типа 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
                                                                                      09 июля 2018, 18:09
                                                                                      0
                                                                                      Людиии… У меня у первой при вставке ссылки пишет Video Id not valid? Причем десяток раз в системных настройках перепроверила названия полей… Для примера обычная ссылка, советский мультик www.youtube.com/watch?v=Gl1_uGW_Teo :)
                                                                                        Павел Гвоздь
                                                                                        09 июля 2018, 22:12
                                                                                        0
                                                                                        А другие ссылки на ютуб норм обрабатывает? Только с этим роликом проблема?
                                                                                          varanika
                                                                                          09 июля 2018, 23:38
                                                                                          0
                                                                                          Ни один ролик. Причем и ключ верно скопировала, и тв были прописаны. Ошибки лезли 2. Сейчас повторила прием — ни одной свежей ошибки не вылезло.
                                                                                          В итоге я пока это дело отложила, ибо так и не поняла что ему не по душе :)


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

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


                                                                                        И так тот же эффект :)
                                                                                          Павел
                                                                                          20 сентября 2018, 22:13
                                                                                          0
                                                                                          Павел, привет. А возможно компонент подружить с MIGX? Уж очень не хватает этого)
                                                                                            Василий Столейков
                                                                                            29 октября 2018, 08:23
                                                                                            0
                                                                                            Есть английский лексикон, но текст в нём продублирован с русского.
                                                                                            Я перевёл себе через translate.yandex.ru/ но хотелось бы из коробки.
                                                                                            Денис
                                                                                            29 октября 2018, 09:11
                                                                                            0
                                                                                            Доброе утро! При вставке ссылки на видео youtube, у 10-15% ресурсов не подгружается превью, написано «Нет изображения» так же выводится и на странице. скрин В чем может быть причина?
                                                                                            Константин
                                                                                            03 ноября 2018, 22:34
                                                                                            0
                                                                                            Добрый вечер. Выставил в настройках в качестве поля, где будет путь к изображению ролика, доп. поле 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
                                                                                              20 декабря 2018, 11:28
                                                                                              0
                                                                                              Почему то не подгружается название и описание к видео prntscr.com/lxcbxl
                                                                                                Сергей
                                                                                                31 января 2019, 01:03
                                                                                                0
                                                                                                Добрый вечер. Не подскажете, как вывести продолжительность видео в секундах? Такой формат необходим для разметки Open Graph.
                                                                                                  Павел Гвоздь
                                                                                                  31 января 2019, 08:36
                                                                                                  0
                                                                                                  Распечатайте поле с массивом видео и гляньте.
                                                                                                  {$_modx->resource.video | print}
                                                                                                  Алексей
                                                                                                  20 февраля 2019, 17:19
                                                                                                  0
                                                                                                  Почему-то отказывается с ютуба парсить ролики, хотя год назад всё работало.
                                                                                                  Чекнул файлик 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
                                                                                                    06 июня 2019, 14:19
                                                                                                    0
                                                                                                    Приветствую
                                                                                                    Столкнулся с проблемой.
                                                                                                    Плагин при парсинге роликов прописывает пути к ролику через http:/

                                                                                                    Сайт использует https, и как результат видео не работает.
                                                                                                    В настройках ничего нет.
                                                                                                    Кто нибудь решал эту проблему?
                                                                                                      Roman
                                                                                                      17 января 2020, 15:55
                                                                                                      0
                                                                                                      Приветствую! У меня в продолжительность ролика попадают данные вида: PT02M07S
                                                                                                      Что это за формат?
                                                                                                        Roman
                                                                                                        17 января 2020, 16:44
                                                                                                        0
                                                                                                        UDP: PT — не знаю что. 02M минуты 07S — сек. Не доперло изначально, думал что это за формат странный какой то XD.
                                                                                                        {$videoDuration | replace : "PT" : "" | replace : "M" : ":" | replace : "S" : ""}
                                                                                                        Roman
                                                                                                        20 января 2020, 12:53
                                                                                                        0
                                                                                                        Изваял маленький скрипт, вытаскивающий кол-во просмотров
                                                                                                        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
                                                                                                          0
                                                                                                          Добрый вечер, Павел.

                                                                                                          Возможно ли этот компонент использовать для создания функционала для добавления видеообзора в карточку товара (в галерею)?
                                                                                                            Яна Митрофанова
                                                                                                            05 мая 2021, 18:58
                                                                                                            0
                                                                                                            Также была ошибка «Не удалось обработать ответ от сервера», после переезда на другой хостинг, помогло изменение версии php с 7.2 на 7.3
                                                                                                              Юрий Ханжин
                                                                                                              21 сентября 2021, 10:05
                                                                                                              0
                                                                                                              Не появилась возможность добавления через MIGX?
                                                                                                                kgb3000
                                                                                                                20 октября 2021, 21:33
                                                                                                                0
                                                                                                                где находится настройка пути к хранению превью?
                                                                                                                  kalisto
                                                                                                                  01 декабря 2021, 10:10
                                                                                                                  0
                                                                                                                  Ранее работало все, а сейчас выдает
                                                                                                                  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
                                                                                                                    24 декабря 2021, 12:46
                                                                                                                    0
                                                                                                                    Здравствуйте, как избравиться от ошибки при установке?

                                                                                                                    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
                                                                                                                      +2
                                                                                                                      Это не ошибка, а предупреждение.

                                                                                                                      Для отключения такого рода предупреждений установите системную настройку log_deprecated в состояние Нет
                                                                                                                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                                                                                      190