жизненный цикл запроса в modx (ajax запрос minishop2)
Господа, подскажите, ведь наверняка для многих это элементарный вопрос.
Не могу отследить как происходит жизненный цикл приложения, в данном случае когда происходит какое-либо изменение в корзине minishop2.
То что вижу я — 1. За изменениями на страницах следит assets/components/minishop2/js/web/default.js
В момент изменения инупта (ну или в других ситуациях) событие change вызывает отправку формы. У формы есть поле ms_action значение которого представляет собой строку из пары параметров к примеру «cart/change»
2. default.js отправляет аякс запросом данные на assets/components/minishop2/action.php Который по сути лишь проверяет что данные есть и подключает основной index.php
3. В index.php происходит вызов метода handlerRequest у объекта modx. И вот дальнейшее для меня пока тайна.
Страница на официальной документации поражает глубиной раскрытия материала и содержит всего две строки.
docs.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.handlerequest
На мой взгляд строка cart/change в стандартном понимании MVC должна представлять из себя название контроллера и вызываемый в нем экшен. Однако я нигде не вижу отдельного класса Cart, чей объект мог бы быть создан и вызван его метод. В директории core/components/minishop2/model/minishop2/ есть к примеру класс core/components/minishop2/model/minishop2/msdeliveryhandler.class.php но нет класса корзины.
Для эксперимента, я удаляю assets/components/minishop2/js/web/default.js и начинаю сам слать аякс запросы на assets/components/minishop2/action.php и если использую уже существующие пары cart/clean или order/getcost то получаю вполне вменяемые ответы.
Не могу отследить как происходит жизненный цикл приложения, в данном случае когда происходит какое-либо изменение в корзине minishop2.
То что вижу я — 1. За изменениями на страницах следит assets/components/minishop2/js/web/default.js
В момент изменения инупта (ну или в других ситуациях) событие change вызывает отправку формы. У формы есть поле ms_action значение которого представляет собой строку из пары параметров к примеру «cart/change»
2. default.js отправляет аякс запросом данные на assets/components/minishop2/action.php Который по сути лишь проверяет что данные есть и подключает основной index.php
3. В index.php происходит вызов метода handlerRequest у объекта modx. И вот дальнейшее для меня пока тайна.
Страница на официальной документации поражает глубиной раскрытия материала и содержит всего две строки.
docs.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.handlerequest
На мой взгляд строка cart/change в стандартном понимании MVC должна представлять из себя название контроллера и вызываемый в нем экшен. Однако я нигде не вижу отдельного класса Cart, чей объект мог бы быть создан и вызван его метод. В директории core/components/minishop2/model/minishop2/ есть к примеру класс core/components/minishop2/model/minishop2/msdeliveryhandler.class.php но нет класса корзины.
Для эксперимента, я удаляю assets/components/minishop2/js/web/default.js и начинаю сам слать аякс запросы на assets/components/minishop2/action.php и если использую уже существующие пары cart/clean или order/getcost то получаю вполне вменяемые ответы.
var data={};
data['name']=name;
data['ms2_action']='order/getcost';
$.ajax({
url: 'assets/components/minishop2/action.php',
type: 'POST',
data: data,
})
но никакого своего «экшена» добавить не могу, даже если в точности копирую уже имеющийся в классе метод и только изменяюю название, то получаю ответ success false
message Неизвестная ошибка
data []
Если кто-то найдет время доходчиво описать, как же это все работает, то спасибо. Комментарии: 1
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.