Артем
С нами с 15 октября 2017; Место в рейтинге пользователей: #165Сегодня в 08:04
Уважаемый @Павел Гвоздь, планируется ли версия для modx 3?
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurrency 6
30 июня 2026, 13:13
Добрый день! Может что-то с правами доступа к файлам? Посмотрите логи в modx, в php. С ходу сложно ответить, ранее не было таких случаев.
FileMan - прикрепление файлов к ресурсам для MODX 3 74
29 июня 2026, 21:27
Большое спасибо за подсказку, но проблема решилась переустановкой.
Зависает корзина минишоп2 2
27 июня 2026, 10:51
Применительно к данному компоненту не знаю, что можно сделать специфического для ИИ. Хотя в целом идея интересная, можно в пакет добавлять скилл или п...
Хватит логгировать как в каменном веке 🪵 5
26 июня 2026, 09:30
Все рекомендации учтены
CommerceBridge1C — двусторонняя интеграция 1С с MODX 3 и miniShop3 по CommerceML 2. 8
25 июня 2026, 21:21
Я и не искал. С новым Formit необходимость в Fetchit и аналогах отпала. Переезд легкий, только событие в js изменить.
FormIt 5.2: нативный AJAX и reCAPTCHA v3 7
25 июня 2026, 01:17
Кстати вопрос возник. Раздражало что для базовой локализации надо было делать версию ru — т.е. создавать дублирование информации из полей и доп.полей....
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeVue 2
20 июня 2026, 17:54
Только что столкнулся с таким на modx3, ранее 1 раз видел на modx 2.8 — не было времени и мотивации разбираться.
Но проблема есть и она старая.
Кл...
Не срабатывают статичные плагины 1
Btw, Quiz is a paid component. That means you have a one year tech support provided by author of this component. Please, sign in to your Modstore account and use Support tab to directly contact the author.
— ловишь нажатие кнопки, отправляешь ajax запрос на сервер с каким-нибудь экшном типа modal/show
— на сервере проверяешь, что это ajax запрос и сравниваешь экшн, если это modal/show, то рендеришь свой чанк с модалкой через pdoTools::getChunk() или modX::getChunk(), а затем возвращаешь ответ на фронт
— на фронте достаешь из ответа html и вставляешь на страницу через append/innerHTML.
Подробнее можно почитать тут и тут.
вместо
пишешь
На выходе получаешь точное количество лет опыта.
Т.е. у каждого преподавателя должна быть дата, от которой нужно отсчитывать стаж, а затем нужно банально вычесть эту дату из текущей, округлив до лет.
Подсчитывать такие вещи через крон на сервере — лишняя головная боль.
P.S. Закинул небольшую спасибку
Спасибо за еще одну отличную заметку!
Конечно, было бы интересно почитать про JWT авторизацию, поскольку она кажется в разы более гибкой и интересной, нежели сессии и вот это все, особенно в контексте полного разделения фронтенда от бэкенда.
ну и потом на крон его повесить, разумеется
Практически всю нужную тебе инфу можно смотреть в рамках этого сайта. Просто пишешь прямо там в поиске нужный метод или фразу, а потом смотришь результаты.
Он поднимается вверх по DOM и ищет указанного родителя.
У тебя может быть хоть 150 одинаковых форм, но измененный инпут принадлежит только одной из них.
Поэтому ты делаешь, например, вот так
и узнаешь, что измененный инпут принадлежит форме с классом formClass.
Более того, ты можешь сразу сохранить эту форму в переменную и в дальнейшем работать с ней, если есть такая необходимость.
Верно, он будет следить за всеми элементами всех форм, в этом и есть его плюс, который называется делегирование.
Например, если у тебя на странице появятся еще 2 формы с таким же классом, то они автоматически подхватятся и в них тоже будут отслеживаться изменения.
И нет, не нужно задавать всем инпутам определенный класс.
Твоя задача
решается вот так
Это будет точно так же срабатывать, если изменения происходят только в рамках конкретной формы.
Твоя форма может быть присвоена переменной, как я уже показал выше, чтобы ты мог с ней работать и собирать из нее данные через FormData, например.
К слову, getElementById('formtest') уже практически не используется в новом коде, поэтому рекомендую заменять его на querySelector('#formtest').
Если тебе нужно отслеживать изменения внутри какой-то конкретной формы, то просто проверяешь ее наличие среди родителей через closest.
Данные из формы удобнее всего собирать через FormData, как уже выше сказали. Иногда может потребоваться дополнительная обработка всяких чекбоксов, потому что по умолчанию неотмеченные чекбоксы вообще не собираются, например.
К слову, FormData — итерируемый объект, поэтому ты можешь легко по нему пройтись через цикл и поменять то, что тебе нужно:
fetch лично мне не зашел, слишком много телодвижений требуется для обычных ajax-запросов. Чтобы принять json на сервере, нужно лезть в php://input и оттуда его доставать, что может быть не всегда удобно по разным причинам. Тут либо написать свой простенький асинхронный метод-обертку для запросов, который будет построен на старом XMLHttpRequest, либо посылать данные в multipart/form-data, тогда проблем не будет.
Помимо этого, fetch до сих пор не умеет отслеживать прогресс загрузки, поэтому если нужна такая фича, можно смело от него отказываться.
1. Убрать оплату из заказа и вернуть json_response в конфиг, тогда exit не будет вызываться, а в ответе будет номер заказа.
2. Брать номер заказа из сессии — он добавляется туда сразу после создания заказа.