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;
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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');
 }