SHOW:
|
|
- or go back to the newest paste.
1 | if ($do=='view'){ | |
2 | ||
3 | // Получаем форму | |
4 | $form = cmsForm::getFormData(cmsCore::request('form_id', 'int')); | |
5 | if(!$form) { cmsCore::error404(); } | |
6 | ||
7 | // Получаем данные полей формы | |
8 | $form_fields = cmsForm::getFormFields($form['id']); | |
9 | // Если полей нет, 404 | |
10 | if(!$form_fields) { cmsCore::error404(); } | |
11 | ||
12 | - | $error = false; |
12 | + | $errors = array(); |
13 | ||
14 | // Получаем данные формы | |
15 | // Если не переданы, назад | |
16 | $form_input = cmsForm::getFieldsInputValues($form['id']); | |
17 | if(!$form_input) { | |
18 | - | cmsCore::addSessionMessage($_LANG['FORM_ERROR'], 'error'); |
18 | + | $errors[] = $_LANG['FORM_ERROR']; |
19 | - | $error = $_LANG['FORM_ERROR']; |
19 | + | |
20 | // Проверяем значения формы | |
21 | foreach ($form_input['errors'] as $field_error) { | |
22 | if($field_error){ | |
23 | $errors[] = $field_error; | |
24 | - | cmsCore::addSessionMessage($field_error, 'error'); |
24 | + | |
25 | - | $error = $field_error; |
25 | + | |
26 | // проверяем каптчу | |
27 | if(!cmsCore::checkCaptchaCode(cmsCore::request('code', 'str'))) { | |
28 | $errors[] = $_LANG['ERR_CAPTCHA']; | |
29 | } | |
30 | - | cmsCore::addSessionMessage($_LANG['ERR_CAPTCHA'], 'error'); |
30 | + | |
31 | - | $error = $_LANG['ERR_CAPTCHA']; |
31 | + | if($errors){ |
32 | if(cmsCore::isAjax()){ | |
33 | cmsCore::jsonOutput(array('error' => true, | |
34 | - | if($error){ |
34 | + | 'text' => end($errors))); |
35 | } else { | |
36 | - | cmsCore::clearSessionMessages(); |
36 | + | foreach ($errors as $error) { |
37 | cmsCore::addSessionMessage($error, 'error'); | |
38 | - | 'text' => $error)); |
38 | + | |
39 | cmsCore::redirectBack(); | |
40 | } | |
41 | } | |
42 | ||
43 | if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } | |
44 | ||
45 | // Подготовим начало письма | |
46 | if($form['sendto']=='mail'){ | |
47 | $mail_message = $_LANG['FORM'].': ' . $form['title']; | |
48 | $mail_message .= "\n----------------------------------------------\n\n"; | |
49 | } else { | |
50 | $mail_message = '<h3>'.$_LANG['FORM'].': ' . $form['title'] . '</h3>'; | |
51 | } | |
52 | // Добавляем заполненные поля в письмо | |
53 | foreach ($form_fields as $field) { | |
54 | ||
55 | if($form_input['values'][$field['id']]){ | |
56 | if($form['sendto'] == 'mail'){ | |
57 | $mail_message .= $field['title'] . ":\n" . $form_input['values'][$field['id']] . "\n\n"; | |
58 | } else { | |
59 | $mail_message .= '<h5>'.$field['title'] . '</h5><p>'.$form_input['values'][$field['id']].'</p>'; | |
60 | } | |
61 | } | |
62 | ||
63 | } | |
64 | ||
65 | // Отправляем форму | |
66 | if ($form['sendto']=='mail'){ | |
67 | cmsCore::mailText($form['email'], cmsConfig::getConfig('sitename').': '.$form['title'], $mail_message); | |
68 | - | $inCore->mailText($form['email'], cmsConfig::getConfig('sitename').': '.$form['title'], $mail_message); |
68 | + | |
69 | cmsUser::sendMessage(-2, $form['user_id'], $mail_message); | |
70 | } | |
71 | ||
72 | cmsUser::sessionClearAll(); | |
73 | ||
74 | if(cmsCore::isAjax()){ | |
75 | cmsCore::jsonOutput(array('error' => false, | |
76 | 'text' => $_LANG['FORM_IS_SEND'])); | |
77 | } else { | |
78 | cmsCore::addSessionMessage($_LANG['FORM_IS_SEND'], 'info'); | |
79 | cmsCore::redirectBack(); | |
80 | } | |
81 | ||
82 | } |