View difference between Paste ID: yP44vB5r and NNnzqB7N
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
}