5 часов назад
Это не ошибка, а warning — посмотрим, спасибо!
MiniShop3 1.2.0 - 1.3.0 Самое интересное 23
Вчера в 14:45
Добавил сиcтемную настройку ms3recentlyviewed.block_bots_detector и интегрировал jaybizzle/crawler-detect
ms3RecentlyViewed - Недавно просмотренные товары для MiniShop3 5
Вчера в 14:38
В следующий раз сделаю как положено)
Gallery3x 3.0.31 для MODX3 - управление файлами 2
28 февраля 2026, 15:20
Всем привет!
Версия модуля 1.4.0
Необходимо обновить наименования товаров.
Выбираем Тип импорта — Обновить данные товаров
Соответствие Столбца Наз...
msImportExport 919
27 февраля 2026, 21:26
Настройками нельзя, только написанием своего плагина, который будет проверять необходимые условия. Если сами не справитесь, могу написать его за отдел...
Вопрос по msProductDiscounts 4
25 февраля 2026, 17:49
Добавлен также генератор разнообразных типов опций товара в разном количестве для разных наборов и их заполнение у товаров.
ms3DemoData - компонент для быстрой генерации демо-данных MiniShop3 3
24 февраля 2026, 18:29
это сделал ИИ.
Я взял код из файла /core/components/minishop2/model/minishop2/minishop2.class.php
я скопировал этот метод function getReceiverId(), ...
Кастомизация minishop'a (номер телефона вместо емейла у пользователя при совершении заказа) 13
23 февраля 2026, 03:33
Вот так отображаются поля довольно красиво! Нужно создать поля: allowed_resources, date_start, date_end в базе данных в таблице modx_user_attributes. ...
Дополнительные поля профиля юзера (не extended) 138
22 февраля 2026, 19:58
Кто реально внедрил MODX с Vue. js — каков опыт?Опыт — реактивные переменные благословение и проклятие Vue. С ними можно делать почти мнгновенно реаги...
Вопрос по будущему MODX и стратегии развития. 4
Всего 125 687 комментариев
Ну это прям призыв, чтобы пришли люди и грохнули сайт без каких-либо сложностей))
И даже так (и вроде когда используется массив) (обсуждали уже где-то здесь) что-угодно можно пропихнуть.
Всегда когда работаем с целыми числами всего лишь нужно добавить (int) перед чем-угодно и спать спокойно.
А это открывает доступ к другим типам инъекций.
Возможно, Fenom что-то там и порежет, но надеяться не стоит.
Теперь по замечаниям.
1) Абсолютный путь в целом там и не нужен, оставлю относительный.
Но ещё более не секьюрно давать кому-то доступ в админку))
Там и без этого никаких проблем получить все системные настройки через Fenom.
2) Поправил, в следующем обновлении уже не должно всплывать.
— если email пустой, то сделаем его в формате «Получатель_заказа@мой сайт.ру». Класс… т.е. первый купивший Алексей зарегистируется на сайте и создаст пользователя с такой почтой, а заказ от второго Алексея внезапно попадет к первому, т.к. почта-то одинаковая…
Ладно, если мы на фронте этого не выводим всего… но в админке то выглядит так, как-будто все эти заказы от одного пользователя!
select id=«delivery_shop» name=«extfld_delivery_shop» value="{$form['extfld_delivery_shop']}" class=«form-control»
Нужно вот так?
$properties = $msOrder->get('properties');
$delshop = $properties['extfld_delivery_shop'];
И просто вывод {$delshop} )?
Подзаработать потом, это хорошо; главное, чтобы проект не возвращался на доработку неожиданно, как будет что-то всплывать. А то техдолг накопится и через пару лет работа будет ради работы делаться. Ну или работать по принципу «сдал проект — и меня нет», тоже так себе подход )))
Вангую немного на будущее:
— вдруг проект вырастет?
— вдруг выяснится, что народ закрывает страницу не дожидаясь отправки и не получает билеты, а потом жалуется?
— вдруг сбой отправки и вы об этом не узнаете, а повторной отправки не предусмотрено?
— вдруг надо будет ещё что-то делать вместе с отправкой билета?
Это я к тому, что лучше этот процесс перенести полностью на бэк, где вы его будете контролировать.
Чтобы БД не запрашивать (хотя для небольших проектов это не имеет особого значения, да и вообще — кому нужна БД — узкое место же :-) ) — можно в файлы json писать: есть файл -> читаем, получаем указанный заказ, отправляем, удаляем. Если отправка каких-то писем не удалась — пишем в лог и данный файл не удаляем. Однако, имхо, это немного извращение.
1. «Чтобы избежать повторных отправок, записываем id заказа в куки… » — лучше таки флаг отправки сохранить в БД, например в properties msOrder. Ибо на страницу domain.ru?msorder=1 можно перейти не раз + она запросто может попасть в индекс яндекса (проверено) и будет весело. Запретите индексацию таких страниц в robots.
2. Откликаться будет ТОЛЬКО на ajax запросы: if ($_SERVER['REQUEST_METHOD'] != 'POST')…
Этот код будет работать при любом запросе к данной странице постом.
Меняйте на что-то вроде:
3. Отправку писем нужно повесить на событие оформления заказа или иное подходящее.
И я бы такой функционал в принципе не вязал бы с MS2, он тут по факту не нужен )
За публикацию личного опыта — спасибо.