public function sendForm($form_id) { $form_model = new wformsFormModel(); $field_model = new wformsFieldModel(); $field_values_model = new wformsFieldValuesModel(); $form = $form_model->getById($form_id); if (!$form) { throw new waException('Форма #' . $form_id . ' не найдена'); } $fields = $field_model->getFormFields($form_id); foreach ($fields as $field) { if ($field['type'] != 'file') { $value = waRequest::post('field_' . $field['id']); if ($field['required'] && empty($value)) { throw new waException('Ошибка отправки формы. Заполните обязательные поля'); } if (is_array($value)) { $data[$field['name']] = implode(', ', $value); } else { $data[$field['name']] = $value; } } } if (!wa()->getCaptcha()->isValid()) { throw new waException('Капча введена неверно'); } $view = wa()->getView(); $view->assign('data', $data); $template_path = wa()->getAppPath('templates/actions/frontend/Message.html', 'wforms'); $html = $view->fetch($template_path); $message = new waMailMessage($form['title'], $html); $message->setTo($form['to']); foreach ($fields as $field) { if ($field['type'] == 'file') { $file = waRequest::file('field_' . $field['id']); if ($file->uploaded()) { $message->addAttachment($file->tmp_name, $field['name'] . '.' . $file->extension); } } } if ($form['from']) { $message->setFrom($form['from']); } if ($message->send()) { return true; } return false; }