1 час назад
Привет.
Будет ли поддержка modx3?Так MS3 целиком предназначен для MODX3. Я не занимаюсь развитием платформы для MODX2.
Продукты будут в отдельной ...
MiniShop3 - новости 4
Вчера в 22:53
доброго времени суток.
Актуализируйте плиз, всё по статье рабочее?
если пресет не прописывать в sendit.inc.php то письмо о заказе прилетает на почту...
[СДЕЛАЙ САМ] SendIt и MiniShop2 - заказ в 1 клик - быстро, просто и бесплатно. 62
Вчера в 06:20
Есть форма на FormIt с полем типа файл — как это поле будет отображаться в гугл таблице? Смогут ли просмотреть этот файл все пользователи, кто имеет д...
GoogleSheets. Компонент для работы с Google таблицами. 26
23 октября 2025, 21:08
Сам отвечу, может кому-то пригодится.
В классе компонента и его плагине есть проверки статуса заказа. Если статус отличный от «новый», то там сраз...
Вопрос по mspYaPay 1
23 октября 2025, 13:18
Ну не знаю, только устарновил Sendit и у форм c AjaxForm появились уведомления
[СДЕЛАЙ САМ] Поиск на сайте по-быстрому 31
23 октября 2025, 07:34
на событие OnBeforeDocFormSave сработал этот вариант:
<?php
/**
* Plugin: Unique URL Checker
* Event: OnBeforeDocFormSave
*/
$resource = $scri...
Автопереименование повторяющегося URL 7
22 октября 2025, 10:41
Да, конечно, само собой ничего магически не произойдет.
Как массово добавить 301 редиректы? 5
19 октября 2025, 19:12
Спасибо большое за помощь!
MODx 3.х проблема с авторизацией через процессор "/Security/Login" 2
18 октября 2025, 17:08
Здравствуйте. Обязательно займусь доработкой, но в ноябре.
Thumb3x: Современная обработка изображений для MODX 3 28
18 октября 2025, 16:14
не для текущего ресурса. Хоть где выводи msGallery, будет выводить именно тот pagetitle ресурса(товара) к которому принадлежит файл.
Другое дело ес...
alt у картинок без "" msgallery - minishop2 21
Всего 125 210 комментариев
Так MS3 целиком предназначен для MODX3. Я не занимаюсь развитием платформы для MODX2.
Тут ничего не изменилось. Поля товара как хранились в ms2_products так и хранятся.
А как ты их между собой связал? Это же разные сущности.
Если вопрос о том, как новые поля попадут в xpdo модель — то там наш старый привычный еще из ms2 способ, который на лету обновляет $meta['map']
Цепочка загрузки:
- 1. OnMODXInit → $ms3->loadMap()
- 2. MiniShop3::loadMap() → $this->extraFields->loadMap()
- 3. ExtraFields::loadMap() → загружает ms3_extra_fields (active=1)
- 4. ExtraFields::getFieldInfo() → формирует метаданные
- 5. ExtraFields::addFieldToMap() → МОДИФИЦИРУЕТ $modx->map[$class] ← ВОТ ГДЕ МАГИЯ!
- 6. xPDO видит новые поля как нативные
Тут я бы разделил ответ1. Репозиторий — это паттерн. Нет четких правил по его использованию или обязательств его использовать. Так что каждый волен делать так, как видит. Вот Laravel до пятой версии вообще всю логику внутри моделей тягал и ничего.
2. На практике, насколько я видел как пишут другие, сервис и репозиторий по сути своей одно и тоже. Их задача разгрузить контроллер, вынести логику в отдельный контейнер.
Я вижу так.
Контроллер принимает запрос от API и отдает ответ. На этом все. Его зона ответственности Request-Магия-Response.
Репозиторий и\или Service — логика. Здесь идет разбор запроса, обращения к DB, построение ответа. Задача сервиса — подготовить ответ согласно запроса.
Model — исключительно работа с базой. Ее задача сходит в базу и выполнить поставленную задачу.
1. Будет ли поддержка modx3?
2. Продукты будут в отдельной таблице?
3. Миграции phinx — а xpdo объекты будут работать? Миграция будет запускаться вручную или при обновлении компонента? Например, при создании поля, что будет происходить?
Если придираться, то:
Сервис — это бизнес-логика и обработка данных
Репозиторий — запросы к базе
Контроллер — запросы, ответы и валидация данных
То есть, контроллер вызывает сервис, сервис вызывает репозиторий, а он в свою очередь обращается к модели.
Актуализируйте плиз, всё по статье рабочее?
если пресет не прописывать в sendit.inc.php то письмо о заказе прилетает на почту (и в письме кстати нет ID товара), но в заказах minishop не показывается
если прописать пресет, то ругается что ID не заполнен…
если вручную даже прописать или вообще из пресета убрать обязательность поля ID то после нажатия на кнопку просто ничего не происходит…
в чем может быть причина? всё как в статье, за исключением иправления косяка в JS — oncLickModal.
В классе компонента и его плагине есть проверки статуса заказа. Если статус отличный от «новый», то там сразу идет редирект на страницу ошибки оплаты без отправки данных в платежную систему и соответвенно без колбека от нее.
В моем случае письмо со ссылкой на оплату отправляется при выставлении дополнительного статуса заказа «Принят к оплате». Соответвенно сразу фейлится.
В итоге пришлось сделать копию класса и внести правки – добавить новый статус и поправить условие проверки.
Вы серьёзно считаете, что чел, способный написать плагин, может не знать на какое событие его назначать?)))