15 минут назад
Все верно, сорян, в своем сообщении написал не то что хотел =)
msGiftCards - дополнение для MODX 2 + miniShop2 для продажи, применения и учета подарочных сертифика... 5
2 часа назад
Нет конечно, иначе это были бы уже отдельные товары.
ms3Variants - Реализация вариантов одного товара в MiniShop3 6
06 марта 2026, 09:38
Александр, данный компонент более недоступен для приобретения?
miniShop 2.9.1-pl 57
06 марта 2026, 09:11
Спасибо за информацию — проверим. Какой редактор используете?
MiniShop3: итоги февраля и версия 1.6.0 6
04 марта 2026, 21:09
Немного нетипичный пост на этом форуме. Будем считать это экспериментом. Кратко вводную информацию я выложил у нас в телеграм-сообществе — получил мно...
Baymard Institute: 61 рекомендация для e-commerce, о которых стоит знать 1
04 марта 2026, 20:13
Атомарненько)))
ms3FirstTimeBuyerDiscount - автоматическая скидка на первый заказ 7
03 марта 2026, 09:49
А теперь все эту красоту оформляем в виде сниппета. Параметры по-умолчанию редактируем в самом сниппете
elements/snippets/bgImage.php
<?php
/**
...
Унифицированное отображение разноформатных изображений без обрезки (решено) 1
02 марта 2026, 17:14
Это не ошибка, а warning — посмотрим, спасибо!
UPD github.com/modx-pro/MiniShop3/pull/127
MiniShop3 1.2.0 - 1.3.0 Самое интересное 23
01 марта 2026, 14:45
Добавил сиcтемную настройку ms3recentlyviewed.block_bots_detector и интегрировал jaybizzle/crawler-detect
ms3RecentlyViewed - Недавно просмотренные товары для MiniShop3 5
Всего 125 673 комментария
К примеру пишешь метод updateStatus(MyClass $class, string $status), так он в теле метода предлагает все сделать — установить статус, сохранить объект, вернуть его, в общем время может экономить.
Но с большими объемами кода ИИ вечно косячит, может просто взять и половину логики потерять, речь в частности просто о ChatGPT. Поэтому простыням кода от него я не доверяю.
Там лаг с label id и input id и как раз если убрать из label id, то и произойдёт ошибка. Конечно если важно, чтобы валидатор был без ошибок, то нужно добавить class и в скрипте поменять "#" на "."
К слову: Только вот непонятно почему после этих изменений отправляется только после второго раза, как жмешь кнопку отправить. То есть приходится вводить капчу 2 раза или/ жмешь отправить, а потом только вводишь, зато хоть работает, пример выше.
Про платную расширенную версию ещё не забываем.
Причём с механикой уведомлений о том, что цена в корзине изменилась в ту или иную сторону и на сколько.
Тоже самое с остатками.
Компоненты скидок и т.п. сами должны реализовывать свою логику в зависимости от изменения цены товара в корзине.
Хотел уточнить:
Есть предложение поддерживать Fork, а не плодить компоненты!
У меня даже есть концепт, как отличать компоненты, у нас есть постфикс версии, как правило это -beta или -pl (и даже -pl2 и т.п.). Я анализировал код установщика и не нашел никаких опасных привязок к этим постфиксам.
А значит, мы можем использовать постфикс в стиле:
Scheduler 1.4.1-pl → Scheduler 1.4.1-modx-pro, где modx-pro — github-логин автора форка. Довольно системно получается, и ничего не сломает. Можно использовать и в других компонентах аналогично!
После этого спокойно выпускать новые версии, не оглядываясь на оригинальный пакет. Раз уж там не понятно почему, не принимают PR-ы (вроде этого), из-за чего, полагаю @Николай Савин и не рассматриваешь изначально затащить туда поддержку MODX3 (хоть она и заявлена у оригинального автора).
Что скажете, коллеги?
А как, при подписке на одно событие — ты прервешь выполнение других, если первое событие сигнализирует о прерывании действия. И еще пожалуйста дай знать, как работать в событиях с асинхронными запросами.
Я и сам думал обойдусь событиями. Но основательно взявшись за работу, понял что они нефига не справляются.
Это xtype (тип поля) самого MODX, выводит всех пользователей modUser
Список всех возможных типов полей
А можно сделать так, чтобы если товары в корзине с устаревшей ценой, то у них цена становилась актуальной?
А то приходится плагин свой делать для этого. А мне кажется это важно и логично для любого магазина…
Тут конечно могут быть сложности, когда используются всякие компоненты скидок и прочего. Но можно сделать галочку в админке — актуализировать цены если в корзине они старые.
Спасибо
Полностью переустановил modx полностью переустановил sendit
Apache:
2.4.55
Панель управления Beget MySQL:
8-beget
Панель управления Beget Nginx:
1.21.1
Панель управления Beget Perl:
5.14.2
Панель управления Beget PHP:
8.3
Панель управления Beget Python:
2.7.3
Консоль
{«success»:false,«message»:"\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d.",«data»:{«successMessage»:"\u0424\u043e\u0440\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430!",«hooks»:«FormItSaveForm,email»,«emailTpl»:«siDefaultEmail»,«emailFrom»:«noreply@complab59.ru»,«formName»:«SimpleForm»,«emailSubject»:"\u041f\u0438\u0441\u044c\u043c\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 complab59.ru",«validate»:«email:email:required,name:required,politics:required»,«sendGoal»:«0»,«counterId»:""}}
{success: false, message: «Невалидный токен.»,…}
data
:
{successMessage: «Форма отправлена!», hooks: «FormItSaveForm,email», emailTpl: «siDefaultEmail»,…}
counterId
:
""
emailFrom
:
«noreply@complab59.ru»
emailSubject
:
«Письмо с сайта complab59.ru»
emailTpl
:
«siDefaultEmail»
formName
:
«SimpleForm»
hooks
:
«FormItSaveForm,email»
sendGoal
:
«0»
successMessage
:
«Форма отправлена!»
validate
:
«email:email:required,name:required,politics:required»
message
:
«Невалидный токен.»
success
:
false
ЛОГИ
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found
Ошибка указывает на проблемы с попыткой загрузки класса siSession, который должен быть связан с таблицей mysql.sisession. Однако, в вашей базе данных нет таблицы с таким названием — вместо этого у вас есть таблицы modx_session и modx_si_sessions. Ошибка говорит, что метод siSession::load() является недействительным, и также проблема с загрузкой класса siSession. Скорее всего, какой-то скрипт пытается загрузить класс siSession, но не может найти соответствующую таблицу в базе данных.
Прикольно, спасибо, пригодиться)