буду безмерно благодарен!
Всей этой хрени (чанки и прочее для Аякса) я присваиваю категорию, скажем, FormsAJAX, чтобы потом искать легче было.
Вот плагин, пусть form_AJAX_plugin, на событие 404, в нем почти такой же вызов.
Ну. понятно, что там же в этом CASE может быть и для форм с другими ИДшниками код.
/**
* form_AJAX_plugin
* Плагин для вызова FormLister с формой через Аякс
*
* @category plugin
* @internal @modx_category Forms AJAX
* @internal @events OnPageNotFound
*/
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
return;
}
if( isset($_GET['q']) && $_GET['q'] == 'ajax_form' && isset($_POST['formid']) ) {
switch($_POST['formid']){
case 'form_feedback':
$result = $modx->runSnippet('FormLister', array(
'formid' => 'form_feedback',
'rules' => '{
"name":{
"required":"Введите имя"
},
"email":{
"required":"Введите email",
"email":"Введите email правильно"
},
"phone":{
"phone":"Введите номер правильно"
},
"comment":{
"required":"Вы не написали сообщение",
"lengthBetween" : {
"params" : [10,1000],
"message" : "Длина сообщения должна быть от 10 до 1000 символов"
}
}
}',
'formTpl' => 'form_feedback_tpl',
'messagesOuterTpl' => 'form_callme_outer',
'errorTpl' => 'form_callme_error_tpl',
'errorClass' => ' has-error',
'requiredClass' => ' has-warning',
'from' => $modx->config['client_email_from'],
'to' => $modx->config['client_email_to'],
'bcc' => $modx->config['client_email_bcc'],
'subject' => 'Обратная связь с сайта '.$modx->config['client_site_name'],
'reportTpl' => 'form_feedback_report',
'successTpl' => 'form_feedback_success',
'removeEmptyPlaceholders' =>'1',
'parseDocumentSource' => '1'
));
echo $modx->parseDocumentSource($result);
die();
break;
default:
die();
break;
}
}