Главная / Блог ModX / Как добавить поддержку Kinescope и RUTUBE в videoGallery

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

Содержание:

Если вы используете компонент videoGallery в MODX и привыкли вставлять видео одной ссылкой в TV-поле, то рано или поздно упираетесь в ограничение: YouTube и часть популярных сервисов работают, а вот Kinescope и RUTUBE из коробки компонент обычно не понимает.

Разберём, как добавить поддержку Kinescope и RUTUBE в videoGallery для MODX Revo, не ломая фронтенд, не создавая новые поля и не усложняя жизнь менеджеру в админке.


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

Логика была простой: менеджер должен вставлять ссылку на видео в то же поле, что и раньше. Без ручной вставки iframe, без отдельного поля под новый сервис и без правок шаблонов на каждой странице.

То есть нужно было добиться сразу нескольких целей:

  • сохранить текущую механику работы videoGallery;

  • добавить поддержку Kinescope и RUTUBE рядом с YouTube, Vimeo и VK;

  • не трогать вывод на фронтенде;

  • сохранить нормальный предпросмотр и структуру данных в TV-поле.


Почему проблему нельзя решить только на фронтенде

Здесь важно понять, как работает сам компонент. videoGallery не просто сохраняет URL как текст. Когда менеджер вставляет ссылку, компонент:

  • отправляет её на серверную обработку;

  • определяет видеосервис;

  • формирует данные для embed и предпросмотра;

  • собирает JSON, который потом сохраняется в TV-поле.

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


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

При такой задаче обычно задействованы три файла:

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

Именно в нём определяется сервис, извлекается ID ролика и собирается формат данных, который потом попадает в TV.


Что нужно доработать в компоненте

Чтобы поддержать Kinescope и RUTUBE, нужно добавить отдельную обработку ссылок этих сервисов. В нормальном варианте доработка включает:

  • распознавание URL Kinescope и RUTUBE;

  • извлечение ID ролика из ссылки;

  • формирование корректного embed URL;

  • сбор метаданных для превью, если это возможно;

  • сохранение JSON в том же формате, который понимает текущий фронтенд.

За отображение и корректную работу поля в админке обычно отвечает ещё и файл:

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

Если обработчик на сервере уже умеет Kinescope и RUTUBE, но в админке не отображается превью или не открываются ранее сохранённые значения, значит нужно смотреть и JS-часть.


Какие ссылки можно использовать после доработки

После корректной доработки в поле videoGallery можно вставлять обычные публичные ссылки, например:

https://kinescope.io/p335YWneyQXsYdim6aSXW3
https://rutube.ru/video/73a7ba13e95f8ca0e96a8d7d71f177d1/

Дальше компонент сам должен распознать сервис, превратить URL в нужный embed-адрес и сохранить данные так, чтобы видео корректно работало и в админке, и на сайте.


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

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

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

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


Куда загружать обновлённые файлы

PHP-обработчик:

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

JS-файл:

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

Перед заменой обязательно сохраните оригиналы. Это базовая мера, но именно она чаще всего экономит время, если на проекте стоит немного другая версия компонента.


Что сделать после замены файлов

  • очистить кеш MODX;

  • обновить страницу админки через Ctrl + F5;

  • проверить вставку новых ссылок;

  • открыть уже сохранённый ресурс и убедиться, что старые видео не сломались.

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


Как проверить, что всё внедрилось правильно

После замены файлов пройдите короткий тест:

  • YouTube сохраняется и показывает превью;

  • VK сохраняется и не ломает старую логику;

  • Kinescope вставляется без ручного iframe;

  • RUTUBE вставляется по той же схеме;

  • ресурс с уже сохранёнными видео открывается без ошибок.

Если эти сценарии проходят, значит доработка собрана корректно и компонент действительно расширен, а не просто визуально “подкрашен”.


Какие ошибки встречаются чаще всего

  1. Подменили только PHP, но не обновили JS.
    В итоге данные могут сохраняться, но поле в админке ведёт себя странно.

  2. Не проверили версию текущего videoGallery.
    На разных проектах структура компонента может немного отличаться.

  3. Не очистили кеш MODX и браузера.
    Из-за этого в работе остаются старые данные и старый JS.

  4. Пытались решить задачу только на фронтенде.
    Тогда компонент всё равно не умеет корректно сохранять новые сервисы.


Подходит ли такой подход для MODX 3

Да, сама логика расширения компонента подходит и для проектов на MODX 3.x, если конкретная версия videoGallery и код обработчика совместимы с окружением сайта. Но перед заменой на боевом проекте всё равно лучше проверить это на копии сайта или хотя бы сохранить оригинальные файлы.

Если у вас сайт на MODX 3 и после перехода на новую версию PHP всплывают сопутствующие ошибки, разумно проверять не только сам компонент, но и совместимость всего проекта.


Итог

Если videoGallery не понимает Kinescope и RUTUBE из коробки, не нужно городить отдельные поля, ручные iframe и нестабильные фронтенд-обходы. В большинстве случаев задача решается аккуратной доработкой обработчика компонента и связанного JS.

Тогда логика остаётся удобной для менеджера: вставил ссылку, сохранил ресурс, получил рабочее видео.

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

Нужно доработать videoGallery под Kinescope или RUTUBE?

Поможем аккуратно внедрить поддержку новых видеосервисов и не сломать существующий вывод на сайте.

Написать нам

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

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

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

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

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

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

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

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

Связь с нами