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