Kirill A. Rusanov

Kirill A. Rusanov

Был в сети 14 февраля 2025, 09:32
Заказы принимаю
Я для себя решил эту проблему следующим образом.
Небольшой сниппет, который делает выборку товаров из указанной категории и из нужного (основного) контекста, leftjoin нужных картинок из msProductFiles, includeTVs babelLanguageLinks. Сниппет разбирает babelLanguageLinks и ставит плейсхолдеры вида [[+префикс.id ресурса в текущем контесте]] => [[url картинки из основного контекста]].
Потом обычный вывод msProducts без includeThumbs, в шаблоне прописываем наш плейсхолдер.
Минусы: плюс один запрос, отдельный чанк для вывода товара в каждом контексте.
Давно работаю по описанной схеме. Могу подтвердить работоспособность и скорость на фронтенде. Тормоза в админке при листинге директории с большим количеством файлов также подтверждаю. Ещё один плюс — дешевизна хранения данных.
Но самая большая проблема, что в случае проблем с селектелом (а они, увы, иногда случаются), сайт на страницах, где используется связка selectel cdn — swift отдает 500-ю ошибку. Речь об оригинальном swift, возможно, Василий это поправил.
Замечен небольшой косяк. Например, видно на главной странице этого замечательного сайта. После перехода на вторую страницу через пагинатор, нажатие на кнопку «назад» в браузере ни к чему не приводит. Потом, после следующих кликов по пагинатору все ок. Проблема в переменной JustLoaded, решение: JustLoaded = false в обработчике кликов для пагинатора.