/** * Save form data * @param array $formData * @return FormSubmission */ public function submissionSaveData(array $formData) { // remove empty values $formData = array_filter($formData); // get array of files to upload $files = []; foreach ($formData as $field => $value) { if (Request::hasFile($field)) { $files[$field] = Request::file($field); unset($formData[$field]); } } // save form submission $form_submission = new FormSubmission(); $form_submission->form_block_id = $this->_block->id; $form_submission->content = serialize($formData); $form_submission->sent = 0; $form_submission->from_page_id = PageBuilder::pageId(); $form_submission->uploadFiles($files); $form_submission->save(); return $form_submission; }
/** * Display pages selected with view * Also reverse lookup option, find pages with the current page selected * @param string $content * @param array $options * @return string */ public function display($content, $options = []) { $pages = []; $page_ids = []; if (isset($options['reverse'])) { // get page_ids on which current page is selected in this block $currentPageId = PageBuilder::pageId(true); if ($currentPageId) { $same_blocks = PageBlock::where('block_id', '=', $this->_block->id)->get(); foreach ($same_blocks as $same_block) { $block_page_ids = @unserialize($same_block->content); if (!empty($block_page_ids)) { foreach ($block_page_ids as $k => $block_page_id) { $block_page_id = Path::unParsePageId($block_page_id); if ($currentPageId == $block_page_id) { $page_ids[] = $same_block->page_id; break; } } } } } } elseif (!empty($content)) { $page_ids = unserialize($content); } if (!empty($page_ids)) { foreach ($page_ids as $page_id) { $parsedPageId = Path::unParsePageId($page_id, false); $pages[$page_id] = new PageDetails($parsedPageId[0], !empty($parsedPageId[1]) ? $parsedPageId[1] : 0); } } $template = !empty($options['view']) ? $options['view'] : $this->_block->name; $selectPageViews = 'themes.' . PageBuilder::getData('theme') . '.blocks.selectpages.'; if (View::exists($selectPageViews . $template)) { return View::make($selectPageViews . $template, array('pages' => $pages))->render(); } else { return 'Select pages template not found'; } }