wfoojjaec
С нами с 31 июля 2019; Место в рейтинге пользователей: #908 часов назад
У msCustomer есть поле user_id, которое связывает покупателя с modUser:
// В модели msCustomer
'aggregates' => [
'User' => [...
MiniShop3 - новый релиз. 1.0.0-alpha.2 4
Вчера в 16:21
Надеюсь все решится все в ближайшее время
ImgsPaste - дружелюбная вставка фотографий из ms2Gallery, MIGX в контент 52
28 ноября 2025, 17:12
Ребята, это нормально что при в режиме Импорт товаров — недоступен импорт остатков (msProductRemains)?
А в режиме импорта остатков не доступны TV и г...
msImportExport 918
26 ноября 2025, 11:39
Дмитрий. первые две строки в вашем логе — это не ошибки. Это предупреждения о плохом коде. Они сами по себе ничего не ломают.
Настоящая проблема у в...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 18
25 ноября 2025, 13:49
Здравствуйте, устанавливаем msProductRemains перестаёт добавлять в корзину, по логам добавляет, на странице корзины ошибка minishop2 not defined и соо...
[msProductRemains] Остатки без свойств и другое 3
25 ноября 2025, 07:08
Отлично. Ну еще проблему с путями решить и норм) Но судя по комментам о Thumb2x, картинки весят больше, чем после обработки pthumb — что тоже ставит н...
Thumb3x: Современная обработка изображений для MODX 3 34
24 ноября 2025, 21:36
Этого не будет
Thumb2x — это мощный и гибкий компонент для обработки изображений 8
24 ноября 2025, 11:50
Добрый день, это только у меня не подтягивает id страницы? prnt.sc/E-kSiVYnK-9d
easyComm 1.15.0 большой апдейт: ответы, улучшенные файлы и многое другогое! 24
18 ноября 2025, 19:37
Ну я к примеру очень часто использую плагин PageBlocks (free версию — он не поддерживает файловые чанки (которых нет в админке) в своих вызовах — ну и...
StaticFilesPlus — автоматическое создание статических элементов с поддержкой категорий 4
На счёт дизайна — нет смысла тратить на это столько усилий. Это админка, а не свистопердящий фронтенд. Достаточно какого-нибудь шаблона за 5$ с themeforest по тегу dashboard, подогнанного под нужды MODX.
На мой взгляд это упирается совсем в другую, более глобальную проблему — ExtJS. Отказаться от него сложно. Использовать bootstrap (для которого уйма дешёвых и красивых решений для админок) в паре с ним крайне затруднительно. Лучшее, что можно безболезненно натянуть на текущую админку — это тему для ExtJS с мелкими правками для разного разрешения, где это вообще возможно (почти нигде. т к ExtJS почти всегда меряет размеры скриптами).
https://datatables.net/
Из того, что у них особенно понравилось — хорошо оптимизирован поиск и сортировка. Неплохо выгребает даже на 200к записей.
Обрабатывать HTML, как и любую структуру, регулярками, а не полноценным построением подели через парсинг, очень плохая идея. Про это неоднократно пишут. Возможны самые различные последствия, самые вкусные из которых:
1. Повреждение преформатированного текста, где важен каждый символ.
2. Повреждение ld+json разметки, json-аттрибутов, шаблонов, где пробелы тоже часто играют роль.
3. Повреждение JavaScript кода, в частности регулярных выражений, строк и логики (потеря перевода строки может приводить к нерабочему коду).
И другие подобные прелести.
Лучше пользоваться услугами CDN, если уже совсем лень.
Ultron, как и любой маркетплейс, берёт с продавца комиссию. Если я правильно помню, то цифры следующие (пример из письма от вс, 26 янв., 10:12):
Требований по обновлению самих сборок к разработчикам они не предъявляют (исходя из того же письма). Поэтому не понятно, кто в конечном счёте должен следить за актуальностью версий дополнений и движкой в сборках. Вероятно сам покупатель (есть ли об этом какое-то предупреждение на видном месте или в справочном разделе — хз).
К чему это я. Маркетплейс, конечно, хороший, но конкретно этот момент продуман ну очень хреново. Лично я отказался сотрудничать с ними, но не по этой причине. К сожалению платные компоненты включить в сборку у них возможности нет. Было бы неплохо, если бы комиссии действительно оправдывали себя (защита покупателя, накопительные скидки, техническая поддержка и прочие, обязательные, для современного мира плюшки).
Буду рад, если смогу как-то улучшить описание. Тестирование на modhost не такой и бессмысленный процесс.
Если сомневаетесь — обязательно воспользуйтесь тестированием компонентов. Если что-то не понятно из документации — смело задавайте вопросы. Для того автор, то есть я, и указывает свои контакты, где это возможно.
Для работы компонента его достаточно просто установить. Сниппет служит для конфигурации, чтобы отдельные страницы или шаблоны можно было обрабатывать по другим правилам или с другим набором подключенных библиотек.
Ранее тестировали PageSpeed для Nginx. Из проблем — это не промышленное решение. Он либо есть у хостера либо его нет. Если сервер свой, то надо ставить руками. И обычным apt-get install к сожалению обойтись не выйдет, нужно угробить часы админского времени. Из-за этого пришлось от него отказаться.
Следующим шагом был выбор провайдера. Именно он влияет на рейтинг «первого байта». И к сожалению скорость для РФ не значит скорость для Google. Оптимальным показался именно выбор провайдера на территории Европы с использованием CDN. Выбор очень широкий и качество достойное.
Ленивая загрузка изображений делалась через bLazy (есть и другие, превосходные аналоги).
Сжатие спева делалось через MinifyX. Он офигенно справляется, если все ресурсы уже скачаны и разложены по папочкам.
Позже накопился ворох плагинов на JavaScript, которые приходилось менять или обновлять. Аналогично было и с версиями Bootstrap. Пришлось переехать на NodeJS (webpack, gulp, тысячи их). Всё офигенно, но зачем тогда MODX?..
Отдельных мучений стоила минификация HTML. В некоторых случаях CDN давал не самые подходящие результаты, и Google не пропускал, предлагая сжать HTML ещё лучше, а минификаторы из официальных репозиториев могли похвастаться одной и той же \s+ регуляркой, которая съедала всё на своём пути.
Google тем временем требовал ещё и грамотно поставить теги preconnect и использовать async/defer.
Плюнули. Написали свою шарманку для склеивания скриптов и стилей в кучу. Завернули туда же минификатор. Назвали PageSpeed.
Следующим шагом был webp. Первой попыткой была конвертация картинок «на лету». Стало понятно, что этот идиотизм проживёт до первой тысячи картинок или посетителей, и память превратится в склероз.
Второй — попытка делать отконвертированные копии при загрузке или по cron-у. Ждать час или каждую минуту сканировать кучу каталогов.
Третьей — очередной модуль для Nginx.
В итоге — конвертация с сохранением во временный кэш, лежащий рядом с движком. Расход места возрастает примерно на половину веса картинок, но зато конвертация идёт «по требованию». Если какую-то картинку вдруг вздумалось поменять — кэш улетает по кнопке и конвертация сама пройдёт заново.
Огромный минус этой фичи — зачем людям сохранять картинку с котиком на свой телефон в формате webp? А ведь получив ссылку на такую картинку выбора у человека уже нет — его браузер сказал, что он поддерживает webp.
В итоге был выбор: или искать спеца под нужный фреймворк или немного допилить уже известный движок. Второе оказалось проще.
Любой сайт нужно обслуживать, если это не визитка на чистом HTML.
Из того, что падает и невозможно использовать:
1. mSearch2 — первый камень в огород Наумкина. Но и его понять можно — предусмотреть идеальный вариант для всех сайтов задача непосильная.
2. pdoPage — катастрофа астрономических масштабов. Постраничная навигация тоже делается своими силами. Всему виной передача всех id в дочерний сниппет.
3. Стандартная постраничная навигация в товарной админке сжирает RAM. но частично работоспособна.
Из серьёзных ограничений:
1. msProducts нужно запускать аккуратно, хорошо подбирая для него параметры.
2. Максимум 1 TV, максимум 1 свойство у товаров miniShop2 (если оно есть у всех товаров). Всё из-за особенностей таблиц БД.
3. Успех запуска pdoMenu сильно зависит от дерева категорий.
Очевидно, что регулярный импорт такой кучи товаров тоже нужно продумывать своими силами, чтобы избежать дублей, особенно если поставщиков тоара много, обновляются они когда попало и как попало.
Время генерации страницы каталога в среднем около 3 секунд, что для автомобилистов вполне терпимо.
Тот самый пример.