Николай Савин
С нами с 01 января 1970; Место в рейтинге пользователей: #22 часа назад
Есть поле mail_smtp_user введи туда логин, если не сработает введи email. И не забудь в emailsender корректный email прописать.
Modx 2.8.8 еще подходит отправки почты через smtp.yandex.ru? 3
3 часа назад
Задача закрыть все потребности никогда не стояла. Я скорее облагородил то, что уже было.
Нужно же и платным компонентам дорогу для развития оставлят...
MiniShop3 1.0.0-alpha.4 — Большое обновление админки 5
19 декабря 2025, 15:43
Подозреваю, что в системных настройках компонента нужно указать ID нужного способа оплаты и в уведомление о заказе не забыть прописать ссылку на оплат...
msOneClick - обновление 5
19 декабря 2025, 11:37
Добрый день! с 1 января 2026г. меняется НДС. Подскажите, где поменять НДС на 22%
[mspTinkoff] - метод оплаты Tinkoff MiniShop2 35
18 декабря 2025, 10:15
Ага, спасибо. Первый и думаю не последний)
StaticFilesPlus — автоматическое создание статических элементов с поддержкой категорий 10
13 декабря 2025, 17:47
Для MIGX нужно указать
"configs": {
"startDay": 1
}
Ввод дат в "привычном" формате ДД.ММ.ГГГГ и отображение с понедельника 12
12 декабря 2025, 22:23
В Сбере поменяли работу с логином и паролем интернет-эквайринга. Теперь они без суфикса -api. И настраиваются в ЛК СберБизнес. (Логин ПШ и ПАроль ПШ)....
[mspSberbank] Оплата заказов miniShop2 через процессинг Сбербанка 109
Нужно же и платным компонентам дорогу для развития оставлять.
Осадочек обоснованный — решение рабочее, но есть несколько моментов, которые стоит обдумать:
Что смущает в текущем фиксе
1. Изменение логики метода.
Оригинальный код при отсутствии сессии возвращал []. Теперь он создаёт сессию. Это может сломать логику в других местах SendIt, которые рассчитывают на пустой ответ как сигнал «сессии нет, нужно что-то сделать».
2. setcookie() без проверки заголовков
Если заголовки уже отправлены — будет ещё один warning.
Минимальный и безопасный фикс
Если цель — просто убрать warning без изменения логики:
Это сохраняет оригинальное поведение: нет куки → нет сессии → пустой массив. Создание сессии должно происходить там, где это предусмотрено архитектурой компонента.
Что бы я сделал
Посмотрел бы, где в SendIt сессия создаётся штатно. Скорее всего есть отдельный метод типа createSession() или это происходит при первой отправке формы. Вот там и должна быть логика создания + установки куки.
Твой фикс работает, но ты фактически добавил fallback-создание сессии в метод, который был рассчитан только на чтение. Если форма авторизации/регистрации работает корректно — можно оставить, но я бы откатился к минимальному варианту и понаблюдал.
Из минусов — можно потерять возможность обновлять некоторые старые компоненты (правда они особо и не обновляются)
Ну и затратно может быть.
Настоящая проблема у вас только одна, та, что про article
Это стандартное поле, оно всегда было в минишопе. Никаких манипуляций с ним никогда не производилось.
Оптимизацию под mysql 8 насколько я знаю специально никто не делал. Вернее закрывали ряд проблем, но не все.
Насчет возрастания нагрузки не знаю что сказать. Таких замечаний отдельно не встречал никогда.
Если вы хотите вы можете заказать оптимизацию минишоп2 под mysql8 — я думаю сделаем. Можете попробовать организовать сбор средств.
Ну и замечу что начинается эпоха MiniShop3 — он уже почти готов и к новому году я думаю увидит свет в магазине дополнений Modstore
Конечно же не нужно его использовать, если есть современные альтернативы
YandexMarket2 — это маленький компонент, где для совместимости с MODX нужно было десяток строк подправить. Я уже сто раз отвечал на этот вопрос.
Minishop2 — огромный продукт с устаревшей архитектурой и кодовой базой — нам дали шанс сделать все с нуля как надо, по современнному, вместо того, чтобы тянуть и дальше старье.
То же самое mSearch2 — это очень большой и очень старый продукт. Для своего времени он был прорывным, но уже много лет как устарел, не отвечает современным требования ни в чем. Ни архитектурой, ни кодовой базой, ни зависимостями — его тоже нужно писать с нуля, сохранив бренд и общий смысл.
Хорошие новости — это будет сильно быстрее, чем история с минишопом.
Просто исправь код у себя на проекте и живи счастливо. Обновления не ставь, там ничего критичного не потеряешь, я уверяю.
Если прям хочется сделать все правильно и красиво — то идешь на github, находишь там нужный компонент и делаешь Pull Request с исправлением. Пул Реквесты мы принимаем, и патчи выпускаем.
Ну если тебе за это платят деньги — то наверное смысл есть. Между PHP 7 и PHP 8, серьезных проблем совместимости нет и никогда не было. Восьмерка поддерживает все из семерки, но чуть строже относится к синтаксису. То есть некоторое количество правок синтаксиса — и все заработает. Я думаю в течение дня с помощью нейронок можно успешно хоть на PHP8.4 перейти.
Тут еще смотря какой набор компонентов используется. Чем их больше — тем и кода больше нужно подгонять.
Для начала все это не движ от Symfony DB и Controllers. В MiniShop3 обычный классический PHP подход. Почитай про PSR-4, крайне рекомендую.
Во-вторых, про метод addPackage в MODX3 забудь. Это делается один раз автоматически при загрузке MODX. Далее MiniShop3, MODX, PHP уже знают про все классы, которые есть в каталоге /core/components/minishop3/src/
Если ты создаешь любой кастомный класс, например
ты обязан использовать namespace. В твоем случае это будет
И полное имя подключаемого класса будет Именно такое имя тебе нужно указывать в системных настройках или подключаемых сервисах.
Вот примерная заготовка для создания класса. расширяющего стандартную корзину
Ну и в системных настойках нужно указать имя расширенного класса (путь не нужен, он по namespace уже известен).
Я сделаю инструмент для подключения классов, без прописывания системных настроек
Будет отдельная инструкция.
Честно говоря, не до конца понимаю зачем ты в принципе лезешь в дебри, для тебя не понятные. Это разработка для программистов. Анонса всеобщего использования минишопа еще не было. Часть архитектуры еще не готова, то что готово, до конца не оттестировано. Если прям так тянет пощупать компонент — изучай то, что готово и анонсировано.