Example #1
0
 /**
  * Save form data and send email
  * @param array $formData
  * @return bool|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function submission($formData)
 {
     if ($form_settings = $this->_block->getContent(true)) {
         $form_settings = $this->_defaultData($form_settings);
         $form_rules = BlockFormRule::get_rules($form_settings->template);
         $v = Validator::make($formData, $form_rules);
         $captcha = Securimage::captchaCheck();
         // check form rules
         if ($v->passes() && !($form_settings->captcha == true && !$captcha)) {
             // delete blank and system fields
             unset($formData['captcha_code']);
             // Save data function (override this function to save data differently)
             $form_submission = $this->submissionSaveData($formData);
             if (!$form_submission->id) {
                 FormMessage::add('submission_save_error', 'Unable to save the form.');
             }
             // Send email
             if ($this->submissionSendEmail($formData, $form_settings)) {
                 $form_submission->sent = 1;
                 $form_submission->save();
             }
             Session::set('form_data', $form_submission);
             return \redirect(PageBuilder::pageUrl($form_settings->page_to));
         } else {
             FormMessage::set($v->messages());
             if (!$captcha) {
                 FormMessage::add('captcha_code', 'Invalid Captcha Code, try again.');
             }
         }
     }
     return false;
 }
Example #2
0
 /**
  * Repeater form submission
  * @param array $formData
  * @return null|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function submission($formData)
 {
     $formRules = BlockFormRule::get_rules($this->_block->name . '-form');
     $v = Validator::make($formData, $formRules);
     if ($v->passes()) {
         foreach ($formData as $blockName => $content) {
             $fieldBlock = Block::preload($blockName);
             if ($fieldBlock->exists) {
                 if ($fieldBlock->type == 'datetime' && empty($content)) {
                     $content = new Carbon();
                 }
                 $formData[$blockName] = $content;
             }
         }
         $this->insertRow($formData);
         Email::sendFromFormData([$this->_block->name . '-form'], $formData, config('coaster::site.name') . ': New Form Submission - ' . $this->_block->label);
         return \redirect(Request::url());
     } else {
         FormMessage::set($v->messages());
     }
     return null;
 }