[videoGallery] Добавляем видеоролики из фронтенда
Многие задавали вопрос: "можно ли добавлять видео из фронта и как это реализовать". Из-за особенности компонента самому это сделать было не так просто, как казалось на первый взгляд. Сегодня Алексей заказал внедрение данной функции.
В компонент был добавлен сниппет videoGallery.input, который можно вызвать в любой форме на сайте, примерно так:
[[!videoGallery.input?
&tv=`video`
&res=`[[+id]]`
]]&tv — это имя ТВ,&res — ID ресурса, к которому привязано видео.
Например, можно добавить возможность указания видео на Youtube при создании/обновлении тикета компонента Tickets. Для этого сделаем следующее:
Предполагается, что у Вас уже есть ТВ video с типом videoGallery.
1) Добавим в чанк tpl.Tickets.form.create внутрь тега form такой код:
[[!videoGallery.input?
&tv=`video`
&res=`0`
]]2) В чанк tpl.Tickets.form.update:
[[!videoGallery.input?
&tv=`video`
&res=`[[+id]]`
]]3) Ну и форму TicketForm вызовем, к примеру на странице:
[[!TicketForm?
&allowedFields=`parent,pagetitle,content,video`
&bypassFields=`video`
]]параметр &bypassFields указать обязательно!Внимание. Компонент заточен только под ресурсы. С другими объектами скорей всего возникнут проблемы.
Скачать можно на modStore.pro
Комментарии: 39
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Что то в тикет не публикуется.
… удалено… не туда...Подробности не мешало бы, чтобы ответ на вопрос получить. Мои экстрасенсорные способности слишком много энергии потребляют, чтобы каждый раз их включать…
P.S.: Он даже на вкладке дополнительных полей не отображался в бекенде в ресурсе… Никогда не сталкивался с таким при разработке. Могу точно сказать, что проблема не в компоненте была.
[2015-10-18 11:51:08] (ERROR @ /home/s1797/www/core/components/videogallery/lib/Panorama/Video/Youtube.php: 65) PHP warning: file_get_contents(https://www.googleapis.com/youtube/v3/videos?key=AIzaSyDEqZJEfnyKAIWmbBX5IwjRWWt9-5GR1Sw&id=Xqam7fEOnGI&part=snippet,contentDetails,statistics,player): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
Микроразметка — штука полезная, сайт с ней куда как лучше попадает в поиск.
Речь о duration — Продолжительность видео. Поле на сайте выводится как метаданные, но оно обязательно.
Судя по ResVideoGallery это поле при сохранении видео на сайте доступно. Я использую Vimeo, но этот параметр есть везде.
Добавишь еще одно поле? Если да, пусть так же с возможностью ему назначить тивишку в настройках.
Прошу не даром, пиши сколько заслать.
Да, и вот скрипт обновления всех полей классно было бы встроить в компонент))) Но это уже не к спеху.
PS ResVideoGallery у меня установлена, но ее я использую для иных целей, когда нужно много роликов на одно статью. Твой же скрипт для основного видео в статье по прежнему удобнее тем, что создав одну статью ее просто копировать в другие контексты в разные языки через Babel, видео копируется вместе с остальным контентом, менеджерам удобство и радость.
Сколько зашлёшь — всему буду рад. :)
Есть небольшое затруднение в использовании сниппета…
Он выводит форму добавления видеоролика, но пишет access_denied
Все сделал по интсрукции, решил протестить на чистом MODX и чет не получается :(
Вот доступы в админку, вдруг чего подскажите:
s6762.h3.modhost.pro/manager/
Логин: s6762
Пароль: wu6Elswmk03n
П.С.
Ключ V3 действующий, в бэкенде добавление работает!
Видимо ему не нравится, что форма вызванная сниппетом TicketForm расположена в еще не созданном ресурсе!
Я уже проверил, редактируется он как надо даже через фронтэнд!
Но вот добавить видео сразу при первоначальном варианте не получается! Может че в сниппете сломалось или версия старая?
Вот это:
в чанке tpl.Tickets.form.create и теперь оно сохраняет туда, куда надо и форма работает!
Непонятно почему в примере указано:
Ведь сниппет ругается на то, что такого ресурса не существует и понятное дело ссылка не вводится!
Точно туда, куда надо? Сохранять надо в ресурс, где располагается форма?Нет, ошибаюсь. Сохранит туда, куда надо, после того, как нажмём кнопку «Сохранить», но тем не менее, немного неправильно это. Сейчас посмотрю по коду, почему так происходит.В tickets через фронт вставляю ссылку, превью появляется, сохраняю ресурс — основная ссылка сохраняется в соответствующем поле. Но дополнительные поля не заполняются (url, id итп). Точнее, данные похоже что есть, окно плеера сообщает id, но он не может его подхватить и видео не грузится, доп поля выглядят пустыми (если смотреть через админку).
Если редактирую этот созданный ресурс обычным способом, через админку. вставляю заново ссылку — доп. поля визуально заполняются данными, id подхватывается, все начинает работать.…
Может каких то прав не хватает, не смог разобраться.
Если кто-то сталкивался. подскажите пожалуйста, как решить.
В моём случае:
— В настройках компонента все поля указаны, ключ в наличии.
— общий tv video в наличии
— При работе через админку поля успешно заполняются. В чанках ticket использовал рекомендации. указанные в этом посте.
Видео пытаюсь вывести с подстановкой в плеер id конкретного видео. Когда поле id заполнено, всё замечательно работает. Но если работаю через фронт, получаю в плеере сообщение:
«Ошибка. Повторите попытку позже. Идентификатор воспроизведения:… Подробнее.»
Чанк videoblog:
<iframe width=«600» height=«420» src="{$video_json['video'] | replace: «http»: «https»}" frameborder=«0» allowfullscreen>