Главная / Блог ModX / Добавить Kinescope в videoGallery для ModX

Как добавить поддержку Kinescope в videoGallery для ModX

Содержание:

Всё работало спокойно и привычно.

Менеджер вставлял ссылку на YouTube в TV-поле.
videoGallery подхватывал видео.
В админке появлялось превью.
На сайте всё красиво выводилось.

А потом приходит новая задача:

«Переезжаем на Kinescope. Нужно, чтобы ссылка вставлялась так же, как YouTube. Фронт не трогаем».

И вот здесь начинается самое интересное.

Потому что на первый взгляд задача маленькая.
Всего лишь «добавить ещё один видеохостинг».
Но если копнуть глубже, выясняется: videoGallery завязан не только на TV-поле, но и на своей обработке ссылок, предпросмотре и JSON-структуре.

Разбираемся: куда именно вносить изменения, какие файлы править и как сделать поддержку Kinescope без изменений фронтенда.


В чём была задача

Нужно было добиться трёх вещей одновременно:

  • вставлять ссылку Kinescope в то же поле, что и YouTube;
  • не менять шаблоны сайта и фронтенд-логику;
  • сохранить работу уже существующих ссылок YouTube, Vimeo и VK.

То есть не «сделать костыль для одного проекта», а аккуратно расширить текущую механику компонента.


Почему нельзя было просто править шаблон

Потому что проблема была не на фронте.

Ссылка на видео в этом компоненте не просто сохраняется как строка.

Сначала JavaScript в админке отправляет URL на серверный обработчик.
Затем процессор компонента пытается:

  • определить видеосервис;
  • получить embed-ссылку;
  • подтянуть превью;
  • сформировать JSON для TV-поля.

И уже этот JSON сохраняется в ресурсе.

Поэтому если просто подставить новую ссылку на фронте — это не решает проблему в корне.
Нужно было доработать именно обработку в компоненте.


Какие файлы участвуют в работе

В процессе разбора мы нашли основную цепочку:

assets/components/videogallery/getvideo.php
core/components/videogallery/processors/mgr/gallery/handle.class.php
assets/components/videogallery/js/libs/vg-handler.js

Из них главный файл — это:

core/components/videogallery/processors/mgr/gallery/handle.class.php

Именно он разбирает ссылку и возвращает результат для сохранения в TV.


Что именно мы доработали

Мы взяли более свежую и аккуратную версию обработчика, в которой уже улучшена работа с VK, и добавили в неё ручную поддержку Kinescope.

Почему ручную?

Потому что стандартные библиотеки компонента хорошо понимают YouTube, Vimeo и часть других сервисов, но с Kinescope могут не сработать так, как нужно.

Поэтому для Kinescope логика такая:

  • ссылка распознаётся отдельно;
  • из неё извлекается ID видео;
  • формируется embed URL;
  • по возможности подтягиваются og:image, og:title, og:description;
  • в TV сохраняется JSON в совместимом формате.

Именно это и позволяет не менять фронт вообще.


Что в итоге получилось

После доработки менеджер работает по привычной схеме:

вставил ссылку вида

https://kinescope.io/p335YWneyQXsYdim6aSXW3

сохранил ресурс — и всё отрабатывает так же, как раньше с YouTube.

Без отдельного поля.
Без переписывания шаблона.
Без ручного вставления iframe.


Какие файлы нужно заменить

Если вы хотите повторить решение у себя, замените два файла:

core/components/videogallery/processors/mgr/gallery/handle.class.php
assets/components/videogallery/js/libs/vg-handler.js

Первый отвечает за обработку ссылок и метаданных.
Второй — за работу поля в админке и корректный предпросмотр уже сохранённых значений.


Перед заменой файлов обязательно

  • сделайте резервную копию исходных файлов;
  • запомните, какая версия компонента стоит у вас;
  • после замены очистите кэш ModX;
  • обновите страницу админки через Ctrl + F5.

Это мелочь, но именно она часто экономит много нервов.


Готовые файлы для скачивания

Ниже можно разместить ссылки на готовые версии файлов:

Дальше их останется только загрузить на сайт с заменой оригиналов.


Куда загружать файлы

PHP-файл:

core/components/videogallery/processors/mgr/gallery/handle.class.php

JS-файл:

assets/components/videogallery/js/libs/vg-handler.js

Если работаете через панель хостинга, удобнее всего сначала скачать старые файлы себе на компьютер, а уже потом загрузить новые версии.


Как проверить, что всё работает

После замены файлов проверьте четыре сценария:

  • YouTube — вставляется и показывает превью;
  • VK — вставляется и не ломается;
  • Kinescope — вставляется и показывает iframe;
  • уже сохранённый ресурс корректно открывается повторно.

Если Kinescope-ролик сохраняется, а в админке появляется предпросмотр — значит, доработка встала правильно.


Что важно понимать

Такое решение не является «официальной настройкой ModX».

Это именно аккуратная доработка конкретного компонента videoGallery под современный видеохостинг.

Но в этом и плюс: не нужно ломать текущую архитектуру сайта.
Достаточно точечно расширить обработчик там, где это действительно нужно.


Итог

Если videoGallery не умеет Kinescope из коробки, это ещё не повод переделывать фронт, городить новые TV-поля или заставлять менеджеров вставлять iframe вручную.

Во многих случаях достаточно правильно доработать обработчик компонента.

И тогда всё снова становится по-человечески:

вставил ссылку,
сохранил ресурс,
получил видео.

Именно так, как и должно работать в нормальной админке.

Если не хотите править файлы вручную или что-то не получилось — напишите нам. Подскажем, где ошибка, или сами аккуратно внедрим поддержку Kinescope на вашем сайте ModX.

Вопрос? Ответ

Да. Если доработать обработчик компонента videoGallery, ссылки Kinescope будут сохраняться в совместимом формате, и фронтенд менять не придётся.

Обычно достаточно заменить два файла: core/components/videogallery/processors/mgr/gallery/handle.class.php и assets/components/videogallery/js/libs/vg-handler.js.

Нет. Удобнее оставить то же самое поле, которое уже использовалось для YouTube. Тогда менеджерам не придётся менять привычный способ работы в админке.

Да, если использовать аккуратную доработку обработчика. Но после замены файлов всё равно нужно проверить YouTube, VK, Vimeo и Kinescope на тестовом ресурсе.

После замены файлов нужно очистить кэш ModX, обновить страницу админки через Ctrl + F5 и проверить вставку видео на тестовом ресурсе.

Да. Если у вас такая же структура компонента, можно использовать готовые версии файлов, загрузить их с заменой оригиналов и затем проверить работу видео в админке.

Как бы Вы хотели связаться?

Связь с нами