Пример #1
0
 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;
 }