Сергей Карпович

Сергей Карпович

Был в сети Вчера в 10:28
Заказы принимаю
Отправить деньги
Это таблица компонента msProductRemains
он использует поле remains, но в Minishop2 4.0.0 тоже появилось это поле, и что то пошло не так. Может оно всегда было, но не участвовало в схеме, хз.

Тут скоррее вопрос к msProductRemains, нужно его научить смотреть remains из своей таблицы
Обнаружил прикол, как понимаю он возникает в Minishop => 4.4.0
Поле remains присутствует в стандартных полях минишопа — присутствует в таблице modx_ms2_products
И в админке на странице со всеми остатками: /manager/?a=mgr/remains&namespace=msproductremains тянется именно поле из modx_ms2_product, а не из modx_ms2_product_remains

А если перейти в карточку товара, на вкладку остатки — там все правильно, остаток подтягивается из таблицы modx_ms2_product_remains

Не понимаю, как это так получается и как это исправить?
При встаке ссылок на 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,
            ];
        }
Я к чему спросил, сейчас активно ведется разработка ключевых компонентов под MODX3. Соответственно все больше разработчиков будут выбирать 3-ку

На 2-ку был кайфовый компонент ImgsPaste. который умеет работать с галереями MIGX, Ms2Gallery и msGallery и дает возможность манагерам просто и быстро вставлять изображения в текст (CKEditor или TinyMCE). Сейчас правда он пропал с модстор

Пока под тройку ничего такого не находил
Ну я говорю разную скорость при одних и тех же условиях.
1 — зашел на страницу — 0.5 сек
2. — просто обновил страницу — 2 сек
3. — выбрал один чекбокс — 1 сек
4 обновил страницу с этим же чек боксом — 2,5сек

Время округлил
Захожу на страницу, по счетчику грузится за 0,5 сек
Обновляю просто страницу, страница загружается по счетчику за 2 секунд. Также и по фильтрам, скорость загрузки скачет в 4 раза при одних и тех же условиях.

Интересно, почему так происходит?