Компонент videoGallery. Fenom выдает «Видео нет». Решено

Дополнение: videoGallery

Здравствуйте уважаемые!
Установил компонент 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, 16:42    Егор К.   
0    347 -1

Комментарии (24)

  1. Алексей Бгатов 23 августа 2016, 17:45 # +2
    во-первых:
    $_modx->resource.video
    — подразумевает, что Вы обращаетесь к видосу ТЕКУЩЕГО РЕСУРСА, то есть той страницы, которая открыта в браузере. Для чанка pdoresources переменная будет выглядеть так:
    $_pls['tv.video']
    во-вторых, инклудТВ нужно прописать в вызове сниппета.
    в-третьих, наверняка json придет уже превращенным в массив, надо пробовать
    1. Егор К. 23 августа 2016, 17:53 # 0
      Спасибо за ответ. Вы не могли бы написать пример вызова видео со страницы через pdoResources?
      1. Павел Гвоздь 23 августа 2016, 19:03 # +1
        Добавить в pdoResources:
        &includeTVs=`video`&tvPrefix=``
        И в чанке вот так добраться до TVшки:
        {$pls['video']}
        1. Егор К. 23 августа 2016, 19:12 # 0
          Написал как Вы указали. Все равно пишет «Видео нет»
          1. Павел Гвоздь 23 августа 2016, 19:14 # 0
            Можно код?
            1. Егор К. 23 августа 2016, 19:17 # 0
              Код вызова на странице.
              [[!pdoResources?
              &parents=`15`
              &tpl=`videoBlog`
              &includeTVs=`video`&tvPrefix=``
              ]]
              код чанка videoBlog

              {set $video_json = json_decode($pls['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}
              
              
              1. Павел Гвоздь 23 августа 2016, 19:33 # 0
                И я в соседнем топике, и Алексей здесь, писали о том, что вот этого:
                {set $video_json = json_decode($pls['video'], true)}
                использовать не надо, т.к. pdoResources уже раскодирует массив из JSON. Это означает, что эту строку надо удалить, а везде, где есть $video_json надо заменить на $pls['video'].
                Например:
                <div><b>Название:</b> {$pls['video'].title}</div>
                1. Егор К. 23 августа 2016, 19:34 # 0
                  Большое спасибо. Буду пробовать. По результатам отпишу.
                  1. Егор К. 23 августа 2016, 19:47 # 0
                    Код на странице:
                    [[$head]]
                    [[$header]]	
                    
                    	<section>
                    		<div class="container">
                    			<div class="row">
                    	
                    				<div class="col-sm-2"></div>
                    					<div class="col-sm-8">
                    	
                    							[[!pdoResources?
                    							&parents=`15`
                    							&tpl=`videoBlog`
                    							&includeTVs=`video`&tvPrefix=``
                    							]]
                    	
                    					</div>
                    				<div class="col-sm-2"></div>	
                    
                    			</div>
                    		</div>
                    	</section>	
                    
                    [[$s-bottom]]
                    [[$footer]]
                    
                    
                    Код чанка videoBlog:
                    <div><b>Название:</b> {$pls['video'].title}</div>
                    
                    — В результате строка без содержания .title:
                    «Название:»
                    1. Егор К. 23 августа 2016, 19:49 # 0
                      Возвращает пустую строку. ((
                      1. Егор К. 23 августа 2016, 20:12 # 0
                        Может быть Browser API key нужно еще вбивать?
                        Из-за этого не приходят аргументы параметров видео?
                    2. Егор К. 23 августа 2016, 19:18 # 0
                      Прошу сильно не ругаться. Со временем, надеюсь, дурацких вопросов задавать буду меньше )
                      1. Егор К. 23 августа 2016, 19:30 # 0
                        Может быть параметры нужно задать в дополнительном поле «video»?
                        1. Егор К. 23 августа 2016, 21:05 # 0
                          Урааа получилось!!! Вобщем Помог вариант
                          Василий Наумкин 10 сентября 2015, 14:36
                          И у pdoResources можно отключить декодирование JSON, если нужно — параметр &decodeJSON=`0`
                          Отключил в pdoResources декодирование JSON и дальше все по мануалу. И все заработало.
                          Спасибо Вам и Василию Наумкину!!! ))
                2. Павел Гвоздь 23 августа 2016, 19:01 # +1
                  Ох, не заметил сразу данного топика.
                  Надо читать документацию по технологиям, с которыми работаешь. Алексей всё верно сказал, вот даже добавить нечего, кроме рекомендации к чтению доков.
                  1. Егор К. 23 августа 2016, 19:04 # 0
                    Хорошо. С чего начать?
                    1. Павел Гвоздь 23 августа 2016, 19:05 # +1
                      Со сниппетов, с которыми работаешь…
                      Например, почитать о pdoResources, Общие параметры pdoTools, которые используются во всех сниппетах компонента.
                      1. Егор К. 23 августа 2016, 19:07 # -1
                        Читал. Ответа не нашел.
                    2. Егор К. 24 августа 2016, 07:32 # -1
                      Павел, здравствуйте.
                      У меня вот такой вопрос.
                      Я так и не смог получить свойства объекта видео «tittle», «desc»:
                      Проверка всех свойств объекта видео в цикле
                      {foreach $video_json as $value}
                       <div>{$value}</div>
                      {/foreach}
                      
                      показало вот такой результат:
                      http://www.youtube.com/embed/tzW1W-gVKeg
                      tzW1W-gVKeg
                      /assets/videoGallery/2/16/99f18408ec313688c95ee7b2a3e6a36a.jpg
                      0
                      
                      Получается свойства «tittle», «desc» отсутствует.
                      Что делать? Как получить эти данные?
                      1. Егор К. 24 августа 2016, 07:46 # -1
                        Или вот из этого цикла нагляднее:
                        {foreach $video_json as $key => $value}
                         <div>{$key}: {$value}</div>
                        {/foreach}}
                        
                        Результат:
                        video: http://www.youtube.com/embed/tzW1W-gVKeg
                        videoId: tzW1W-gVKeg
                        image: /assets/videoGallery/2/16/99f18408ec313688c95ee7b2a3e6a36a.jpg
                        title:
                        desc:
                        videoDuration: 0
                        }
                        1. Егор К. 24 августа 2016, 07:48 # -1
                          Или вот из этого цикла нагляднее:
                          {foreach $video_json as $key => $value}
                           <div>{$key}: {$value}</div>
                          {/foreach}}
                          
                          Результат:
                          video: http://www.youtube.com/embed/tzW1W-gVKeg
                          videoId: tzW1W-gVKeg
                          image: /assets/videoGallery/2/16/99f18408ec313688c95ee7b2a3e6a36a.jpg
                          title:
                          desc:
                          videoDuration: 0
                          }
                          1. Павел Гвоздь 24 августа 2016, 07:51 # +2
                            Друг, давай ты перестанешь СПАМить данный ресурс своими одинаковыми сообщениями, как в одном, так и в разных топиках. Этим ты делу не поможешь. А вот чем реально поможешь, так это тем, что вместо того, чтобы задавать глупые вопросы — начнёшь читать документацию.
                            1. Егор К. 24 августа 2016, 12:40 # +1
                              Договорились. )
                              Спасибо за компонент. Все установил на сайт. Видеогалерея работает. Сейчас стилизую и аякс вывод делаю.
                        2. Егор К. 23 августа 2016, 21:00 # 0
                          Урааа получилось!!! Вобщем Помог вариант
                          Василий Наумкин 10 сентября 2015, 14:36 # ↑ +1
                          И у pdoResources можно отключить декодирование JSON, если нужно — параметр &decodeJSON=`0`
                          Отключил в pdoResources декодирование JSON и дальше все по мануалу. И все заработало.
                          Всем спасибо!!!
                          Вы должны авторизоваться, чтобы оставлять комментарии.