gruzoveek

gruzoveek

Был в сети 13 октября 2021, 18:50
Заказы принимаю
Не представляю для чего нужно напрямую обращаться к странице 404, ее и из меню скрывают обычно. Когда туда происходит перенаправление то код и так будет 404. Если ее роботы неправильно индексируют то надо в robots.txt запретить ее индексировать

User-agent: *
Disallow:
Disallow: /404.html
если уж очень надо по прямой ссылке на 404 получать не 200 а также 404 то можно накостылить плагин на событие OnHandleRequest, в котором отправить заголовок 404 и показать нужное содержимое, типа такого

if  ($modx->event->name == 'OnHandleRequest' && $_SERVER['REQUEST_URI'] == '/404.html') {
    header( "HTTP/1.1 404 Not Found" );
    //... и что-нибудь там еще можно сделать
}
я пока понять не могу что вам в итоге нужно получить. Если вы хотите отправить форму на сервер, чтобы там ее как-то обработать, то вам нужно сделать сниппет который будет обрабатывать данные формы, и название этого сниппета вписать в раздел hooks при вызове AjaxForm, примерно так

[[!AjaxForm?
    &form=`tpl.AjaxForm.example`
    &hooks=`yourSnippet`
   ...
]]
точно как по учебнику. по идее если хотя бы одно значение чекбокса выбрано, то оно должно передаваться на сервер (при наличии соответствующего хука). либо передастся пустое значение из скрытого поля.

что содержится в массиве POST после отправки формы?
если вы хотите сделать плагин для добавления суммы заказа и количества товаров в поля юзера, вам надо повесить его на событие создания заказа (msOnCreateOrder). Ну и на всякий случай еще можно сделать плагин на вычитание данных заказа (msOnRemoveOrder) если нужно убирать из статистики удаленные заказы.