public function form($attr, $content = null, $name = null) { $idForm = (int) array_get($attr, 'id'); $form = Forms::find($idForm); if ($form->id) { $templateForm = 'formbuilder::front.form'; $content = view($templateForm, compact('form', 'attr'))->render(); } return $content; }
public static function submitData($data, $dataFiles) { $bResult = false; $formId = array_get($data, 'formbuilder_id'); $locale = array_get($data, 'formbuilder_locale'); $clientIp = array_get($data, 'client_ip'); $formBuilder = Forms::find($formId); if ($formBuilder->id) { DB::beginTransaction(); try { $formSubmit = new self(); $formSubmit->form_id = $formId; $formSubmit->locale = $locale; $formSubmit->client_ip = $clientIp; $formSubmit->save(); $formSubmitId = $formSubmit->id; $order = 0; foreach ($data as $key => $value) { if (!in_array($key, $formSubmit->unSaveField)) { $formSubmitData = new FormSubmitData(); $formSubmitData->submit_id = $formSubmitId; $formSubmitData->field_name = $key; $formSubmitData->field_value = $value; $formSubmitData->field_order = $order; $formSubmitData->save(); ++$order; FormbuilderShortcode::registerSubmitShortcode($key, $value); } } foreach ($dataFiles as $key => $value) { if (!in_array($key, $formSubmit->unSaveField)) { $formSubmitData = new FormSubmitData(); $formSubmitData->submit_id = $formSubmitId; $formSubmitData->field_name = $key; $formSubmitData->field_value = $value; $formSubmitData->field_order = $order; $formSubmitData->is_file = 1; $formSubmitData->save(); ++$order; FormbuilderShortcode::registerSubmitShortcode($key, $value); } } DB::commit(); $formMail = new FormMail(); $formMail->sendMail($formSubmitId, $locale); event(new FormbuilderEvent('submit_form', $data)); $bResult = true; } catch (\Exception $ex) { Log::info($ex); DB::rollback(); } } return $bResult; }
public function sendMail($formSubmitId, $locale) { $formSubmit = FormsSubmits::findOrFail($formSubmitId); $formSubmitData = $formSubmit->formSubmitData; $formId = $formSubmit->form_id; $form = Forms::findOrFail($formId); $formMail = $form->getFormMail($locale); $to = $formMail->to; $from = $formMail->from; $subject = $formMail->subject; $additional_headers = $formMail->additional_headers; $body = $formMail->body; $attachments = $formMail->attachments; $to = Shortcode::compile($to); $from = Shortcode::compile($from); $subject = Shortcode::compile($subject); $additional_headers = Shortcode::compile($additional_headers); $body = Shortcode::compile($body); $attachments = Shortcode::compile($attachments); Log::info($to); Log::info($from); Log::info($subject); Log::info($body); Log::info($additional_headers); Log::info($attachments); Mail::raw($body, function ($message) use($to, $from, $subject, $body, $additional_headers, $attachments) { $message->from($from, $from); /* $message->sender($address, $name = null); */ $message->to($to, $to); /* $message->cc($address, $name = null); $message->bcc($address, $name = null); */ /* $message->replyTo($address, $name = null); */ $message->subject($subject); /* $message->priority($level); $message->attach($pathToFile, array $options = []); */ // Attach a file from a raw $data string... /* $message->attachData($data, $name, array $options = []); */ // Get the underlying SwiftMailer message instance... /* $message->getSwiftMessage(); */ }); }
/** * Store a newly created resource in storage. * * @param Request $request * * @return Response */ public function send(FormcustomRequest $request) { $data = $request->all(); $formId = array_get($data, 'formbuilder_id'); $locale = array_get($data, 'formbuilder_locale'); $data['client_ip'] = $request->ip(); $files = $request->file(); $form = Forms::find($formId); $image = new Securimage(); $fields = $form->getFields(); $successMsg = trans('formbuilder::formbuilder.message.success_submit'); $errorMsg = trans('formbuilder::formbuilder.message.error_submit'); if (!$this->checkCaptcha($fields, $image)) { flash()->error(trans('formbuilder::formbuilder.message.error_captcha')); return redirect()->back()->withInput(); } $dataFiles = array(); if (is_array($files)) { $dataFiles = $this->handleFiles($files, $formId); } if ($form->id) { $formMessages = $form->getFormMessages($locale); if ($formMessages->success != '') { $successMsg = $formMessages->success; } if ($formMessages->failure != '') { $errorMsg = $formMessages->failure; } } $result = FormsSubmits::submitData($data, $dataFiles); if ($result) { flash()->success($successMsg); } else { flash()->error($errorMsg); } return redirect()->back(); }
/** * @return array */ public function messages() { $messages = []; $data = $this->request->all(); $formId = array_get($data, 'formbuilder_id'); $locale = array_get($data, 'formbuilder_locale'); $formBuilder = Forms::find($formId); if ($formBuilder->id) { $formMessages = $formBuilder->getFormMessages($locale); if ($formMessages->invalid_required != '') { $messages['required'] = $formMessages->invalid_required; } if ($formMessages->invalid_email != '') { $messages['email'] = $formMessages->invalid_email; } if ($formMessages->invalid_url != '') { $messages['url'] = $formMessages->invalid_url; } if ($formMessages->invalid_date != '') { $messages['date_format'] = $formMessages->invalid_date; } if ($formMessages->invalid_number != '') { $messages['numeric'] = $formMessages->invalid_number; } if ($formMessages->invalid_number_too_small != '') { $messages['min'] = $formMessages->invalid_number_too_small; } if ($formMessages->invalid_number_too_large != '') { $messages['max'] = $formMessages->invalid_number_too_large; } if ($formMessages->invalid_phone != '') { $messages['regex'] = $formMessages->invalid_phone; } } return $messages; }
/** * Remove the specified resource from storage. * * @param Paused $paused * * @return Response */ public function destroy($id) { Forms::findOrFail($id)->delete(); flash()->success(trans('core::core.messages.resource deleted', ['name' => trans('formbuilder::formbuilder.title.form')])); return redirect()->route('admin.formbuilder.formbuilder.index'); }