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 | } |