Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 093 комментария

Сергей Карпович
Сергей Карпович
При встаке ссылок на Rutube ролики с доступом по ссылке, из ссылки вырезается ключ доступа после ID ролика: rutube.ru/play/embed/id_ролика/?p=ключ

Соответственно видео не работает

Решение:
в файле core/components/videogallery/lib/VideoThumb/VideoThumb.php заменить блок парсинга ссылку рутуб на этот:
// Rutube
        elseif (preg_match('~https?://(?:www\\.|)rutube\\.ru/video/embed/([a-zA-Z0-9_\\-]+)/?~i', $video, $matches) ||
                preg_match('~https?://(?:www\\.|)rutube\\.ru/video/([a-zA-Z0-9_\\-]+)/?~i', $video, $matches) ||
                preg_match('~https?://(?:www\\.|)rutube\\.ru/tracks/([a-zA-Z0-9_\\-]+)(&.+)?/?~i', $video, $matches)) {
            
            $videoId = $matches[1];
            $newVideo = 'https://rutube.ru/video/embed/' . $videoId;

            // --- НАЧАЛО ПРАВКИ: Добавляем поддержку приватного ключа ?p= ---
            $parts = parse_url($video);
            if (isset($parts['query'])) {
                parse_str($parts['query'], $queryParams);
                if (!empty($queryParams['p'])) {
                    // Добавляем ключ к embed ссылке
                    $newVideo .= '/?p=' . $queryParams['p'];
                }
            }
            // --- КОНЕЦ ПРАВКИ ---

            $video = $newVideo;
            $image = '';

            // Добавил @ перед file_get_contents, чтобы не сыпались ошибки если Rutube вернет 404 для закрытого видео
            if ($json = json_decode(@file_get_contents('https://rutube.ru/api/video/' . $videoId), true)) {
                $image = $json['thumbnail_url'];
                $image = $this->getRemoteImage($image);
            }
            $data = [
                'video' => $video,
                'videoId' => $videoId,
                'image' => $image,
            ];
        }
Ivan K.
Ivan K.
Более того, если используется на сайте 8.1 — то установку «клинит», сайт перестает работать вообще, выводится ошибка типа минимальная версия 8.2. И с другими компонентами тоже самое (mFilter и mSearch)
Дмитрий
Дмитрий
Ivan K.
Ivan K.
Дмитрий
Дмитрий
@Ivan K. Привет, подскажи, пожалуйста, нет ли у тебя в планах разместить доку для Thumb3x и Thumb2x на docs.modx.pro? Ну или как-то вообще решить этот вопрос с документацией в экосистеме русскоязычного modx. Для таких системообразующих компонентов это мастхэв, мне кажется. Благодарю за ответ!
Николай Савин
Николай Савин
Попробовал на чистом, с нуля поднятом сайте — ошибку подтвердить не получилось. Все работает. Возможно проблема локальная или связана с конкретно вашим софтом Уточните какая у вас СУБД, версия PHP?
Иван Бочкарев
Иван Бочкарев
Вы не правы говоря, что нет переводов — primevue.org/configuration#locale + github.com/primefaces/primelocale

В новой версии будет добавлен композабл usePrimeVueLocale с переводами на русский и английский язык для DataTable, DatePicker, Calendar и так далее.

Локаль будет выбираться в зависимости от cultureKey в админке. Уже готов код, как только я протестирую решение — подготовлю PR.