Всего 125 531 комментарий

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

Время округлил
Павел Романов
22 января 2026, 12:21
0
Что касается просто открытия/обновления страницы (без значений в URL), то довольно ровно 0.4 – 0.49.
В остальном чем больше фильтров выбрано, тем дольше обработка (проверяется больше условий).
Если выбраны только новинки, то 0.45, если добавить еще что-то, будет дольше.
Ну и зависит, конечно, от типа поля. Для TV и опций товаров нужны дополнительные запросы.
Сергей Карпович
22 января 2026, 11:54
0
Захожу на страницу, по счетчику грузится за 0,5 сек
Обновляю просто страницу, страница загружается по счетчику за 2 секунд. Также и по фильтрам, скорость загрузки скачет в 4 раза при одних и тех же условиях.

Интересно, почему так происходит?
Fred
22 января 2026, 04:41
0
Есть проблема с расширением, убирает из контекстного меню «Open with Live Server», с файлами шаблонов понятно это допустимо, хотя и не очень нужно, но а в .html то зачем убирать, приходится его отключать, неудобно. В настройках смотрел, нет ничего, как это исправить?
Павел Романов
21 января 2026, 20:00
+2
Иногда нужно отобрать в этой логике (например, блюдо по ингредиентам, чтобы было и то и то).
В демке именно так, но ничего не мешает указать в вызове &mode=`or` и будет стандартный режим.
Николай Савин
21 января 2026, 19:50
+1
Цитата из демки
Демо с 1 000 товарами в одной категории и логикой AND (то есть выполняются все условия по отмеченным опциям):
Я проверил… выбрал все цвета — получил 0 результатов. Реально AND работает. Выбирается товар у которого одновременно есть Красный, Синий, Белый и так далее цвета. Однако типовой фасетный фильтр работает через OR, то есть выбрать все товары у которых цвета Синий ИЛИ Белый ИЛИ Красный т.д.

То есть налицо логическая ошибка и антипаттерн. Не могу представить ситуации, в которых такая архитектура может быть уместна.

Не сочти за претензию, я скорее удивлен твоему выбору.
Павел Романов
21 января 2026, 15:39
0
У Modstore есть правила размещения и это компромиссный вариант, который устроил обе стороны.
В любом случае никто же не заставляет покупать и всегда хорошо, когда есть выбор.
Нужно что-то большее, подождите выхода нового mFilter и купите его — никто же не запрещает.

Что касается скорости, то это решение для небольших магазинов, у которых в одной категории порядка 300-500 товаров (согласитесь, таких много).
Да, на большом количестве будут тормоза, ну так они и на mFilter2 есть и ничего, многие пользуются.
Вот, к примеру, всего порядка 650 товаров в категории подтормаживает не меньше и ничего.
Miša Bulic
21 января 2026, 15:14
0
Для упрощенной версии и ограниченного функционала, высоковата цена. Быстродействие оставляет желать лучшего.
vectorserver
21 января 2026, 12:55
0
Смотри плагины ну и край создай свой плагин к примеру CleanOutput и привяжи к событию OnWebPagePrerender

$output = &$modx->event->_output;
$output = ltrim($output, "\x0B\x20\x09\x0D\x0A"); // Удаляет \v, пробел, таб, \r, \n из начала строки
Павел Романов
21 января 2026, 11:43
0
Новинки, Акции, Хиты, Цена и Цвет — поля товара miniShop3.
На складе — TV-шка.
Материал — опция категории (ms3_product_option).

Компонент потому и «simple», что не претендует на суперскорость.
Для >1000 товаров в категории или большого кол-ва фильтров нужно использовать другие решения.
Артур Шевченко
21 января 2026, 11:28
0
Как будто бы 2 секунды на фильтрацию 1000 товаров без единой твшки это многовато.
Павел Романов
21 января 2026, 11:04
0
В данный момент нет, но в ближайшее время планирую добавить.
Также в планах работа с MIGX-параметрами, но это позже.
Александр
21 января 2026, 10:50
0
Кроме обычной пагинации предусмотрена ли загрузка «по кнопке»?
Ivan K.
21 января 2026, 09:13
+1
А я правильно понимаю, что это какая-то недоработка со стороны MODX?
это можно назвать архитектурной недоработкой (или «техническим долгом»), которая стала критичной именно в современных реалиях.

Настройки прокси в MODX изначально проектировались под протокол HTTP. Поля в админке есть, но ядро системы по умолчанию «под капотом» говорит библиотеке cURL: «Используй это как HTTP-прокси». Когда вы подсовываете системе SOCKS5, она просто не понимает, что с ним делать, потому что в интерфейсе отсутствует переключатель «Тип прокси».

Отсутствие поддержки удаленного DNS (SOCKS5h): Cloudflare, за которым стоит репозиторий MODX требуют, чтобы DNS-запрос тоже шел через прокси. Обычные настройки MODX этого не умеют — они пытаются разрешить адрес сервера локально, получают блокировку и соединение обрывается.
Дима Касаткин
21 января 2026, 01:52
0
Тут ведь речь о том, чтобы не на ПК скачивать, а сразу на сайте через менеджер пакетов устанавливать обновления пакетов или загружать новые. В этом случае на адрес репозитория обращается не ПК пользователя админки сайта, а сам сайт (отображая для пользователя лишь результаты).

А в целом можно конечно скачивать пакет из репозитория на свой комп, потом загружать вручную на сайт и оттуда устанавливать, но это же не удобно :)

Поэтому инструкция кажется очень полезной. Спасибо @Ivan K. что поделился!

А я правильно понимаю, что это какая-то недоработка со стороны MODX? Настройки прокси стоковые (есть и в MODX v2.8.x который у меня оказался под рукой), но выходит, они не используются ядром для установки пакета (а для чего тогда используются...?!), т.е. это похоже на баг?
Руслан
21 января 2026, 00:03
0
Низкий поклон вам за старания. Будет возможность, порадую и «звонкой монетой».

Под чистым — это заведение нового аккаунта на sweb (14 дней бесплатных), автоустановка модекса с нуля средствами админки, далее добавление репозитория modstore.pro и установка pdoTools и vueTools и потом уже miniShop3.

На третьей итерации заметил, что sweb при автоустановке MODX 3, делает папку /core/ на уровень выше от папки сайта ($modx_core_path= '/home/w/williamso3/public_html/../core/'), перенёс её в папку сайта и «Ура» — прошло успешно:
Консоль запущена...
Пробуем установить пакет с подписью: minishop3-1.2.2-beta1
Пакет найден... сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета...
Рабочее пространство загружено, сейчас устанавливаем пакет...
PHP deprecated: Creation of dynamic property MODX\Revolution\modConnectorResponse::$response is deprecated
[MiniShop3] Starting database migrations...
PHP warning: Constant MODX_CORE_PATH already defined
PHP warning: Constant MODX_CONFIG_KEY already defined
PHP deprecated: Creation of dynamic property MODX\Revolution\modConnectorResponse::$response is deprecated
== 20251020000000 InitialSchema: migrating
Creating MiniShop3 tables...
Model path: /home/w/williamso3/public_html/core/components/minishop3/src/Model/
Table `modx_site_content` already exists, skipping
✓ Created table: `modx_ms3_product_categories`
✓ Created table: `modx_ms3_category_options`
✓ Created table: `modx_ms3_customers`
✓ Created table: `modx_ms3_customer_addresses`
✓ Created table: `modx_ms3_customer_tokens`
✓ Created table: `modx_ms3_deliveries`
✓ Created table: `modx_ms3_delivery_payments`
✓ Created table: `modx_ms3_extra_fields`
✓ Created table: `modx_ms3_grid_fields`
✓ Created table: `modx_ms3_links`
✓ Created table: `modx_ms3_notification_configs`
✓ Created table: `modx_ms3_options`
✓ Created table: `modx_ms3_orders`
✓ Created table: `modx_ms3_order_addresses`
✓ Created table: `modx_ms3_order_logs`
✓ Created table: `modx_ms3_order_products`
✓ Created table: `modx_ms3_order_statuses`
✓ Created table: `modx_ms3_page_sections`
✓ Created table: `modx_ms3_payments`
Table `modx_site_content` already exists, skipping
✓ Created table: `modx_ms3_products`
✓ Created table: `modx_ms3_product_fields`
✓ Created table: `modx_ms3_product_files`
✓ Created table: `modx_ms3_product_links`
✓ Created table: `modx_ms3_product_options`
✓ Created table: `modx_ms3_vendors`
MiniShop3 schema creation completed!
Adding foreign key constraints...
Foreign keys setup completed!
== 20251020000000 InitialSchema: migrated 0.2875s
== 20251021000000 SeedPageSections: migrating
✓ Inserted 4 page sections for product_data
== 20251021000000 SeedPageSections: migrated 0.0034s
== 20251022000000 SeedProductFields: migrating
✓ Inserted 13 default product fields
== 20251022000000 SeedProductFields: migrated 0.0052s
== 20251023000000 SeedOrderStatuses: migrating
✓ Inserted 5 default order statuses
Note: Status names will be replaced with lexicon values when accessed through MODX
Updating system settings with status IDs...
✓ Updated ms3_status_new = 2 (from ms3_order_status_new)
✓ Updated ms3_status_paid = 3 (from ms3_order_status_paid)
✓ Updated ms3_status_canceled = 5 (from ms3_order_status_cancelled)
✓ System settings updated successfully
== 20251023000000 SeedOrderStatuses: migrated 0.0050s
== 20251023000001 SeedDeliveryAndPayment: migrating
✓ Created default delivery: ms3_delivery_self_pickup
✓ Created default payment: ms3_payment_cash
✓ Linked delivery and payment
Default delivery and payment setup completed!
== 20251023000001 SeedDeliveryAndPayment: migrated 0.0075s
== 20251127000002 SeedCustomersGridConfig: migrating
== 20251127000002 SeedCustomersGridConfig: migrated 0.0025s
== 20251204140000 SeedOrdersGridConfig: migrating
== 20251204140000 SeedOrdersGridConfig: migrated 0.0010s
== 20251205120000 CreateModelFieldsTable: migrating
== 20251205120000 CreateModelFieldsTable: migrated 0.0104s
== 20251205120100 SeedModelFields: migrating
== 20251205120100 SeedModelFields: migrated 0.0025s
== 20251211120000 CreateModelFieldSectionsTable: migrating
== 20251211120000 CreateModelFieldSectionsTable: migrated 0.0080s
== 20251211120200 SeedModelFieldSections: migrating
== 20251211120200 SeedModelFieldSections: migrated 0.0054s
== 20251215120000 SeedOrderProductsGridConfig: migrating
== 20251215120000 SeedOrderProductsGridConfig: migrated 0.0010s
== 20251216120000 AlterOrderLogsTable: migrating
== 20251216120000 AlterOrderLogsTable: migrated 0.0098s
== 20251222120000 SeedDeliveriesGridConfig: migrating
== 20251222120000 SeedDeliveriesGridConfig: migrated 0.0010s
== 20251223120000 SeedVendorModelFields: migrating
== 20251223120000 SeedVendorModelFields: migrated 0.0027s
== 20251223130000 SeedVendorsGridConfig: migrating
== 20251223130000 SeedVendorsGridConfig: migrated 0.0008s
== 20251231140000 SeedCategoryProductsGridConfig: migrating
== 20251231140000 SeedCategoryProductsGridConfig: migrated 0.0007s
== 20260107120000 FixOrdersGridFilterable: migrating
== 20260107120000 FixOrdersGridFilterable: migrated 0.0006s
== 20260108001501 AddProductCardUiToFrontendAssets: migrating
== 20260108001501 AddProductCardUiToFrontendAssets: migrated 0.0005s
== 20260119120000 RenameModelFieldsRankToSortOrder: migrating
== 20260119120000 RenameModelFieldsRankToSortOrder: migrated 0.0018s
== 20260119220000 UpdateOrdersGridStatusFields: migrating
== 20260119220000 UpdateOrdersGridStatusFields: migrated 0.0010s
[MiniShop3] Database migrations completed
✅ [MiniShop3] Manager API custom routes file created at: core/config/ms3_routes_manager.custom.php
This file will NEVER be overwritten. Safe to customize!
[MiniShop3] Could not create Web API custom routes example (optional)
📁 [MiniShop3] System routes are in: core/components/minishop3/config/routes/
[MiniShop3] Scheduler not installed, skipping task registration. Install Scheduler component to enable background task processing.
Успешно установлен пакет minishop3-1.2.2-beta1
Николай Савин
20 января 2026, 17:39
0
Выпустил еще один патч — обновляйся проверяй.
Николай Савин
20 января 2026, 17:38
0
Выпустил патч — обновляйся проверяй