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; }
/** * 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; }