public function postSave() { $input = $this->request->input(); if (isset($input['template'])) { unset($input['template']); } $chunk = ChunkFacade::create($this->page, $input); if ($this->request->input('template')) { $chunk->template($this->request->input('template')); } // This is usually defined by the page controller. // We need to define a variant of it incase the callback is used in teh chunk view. View::share('chunk', function ($type, $slotname, $page = null) { return ChunkFacade::get($type, $slotname, $page); }); View::share('page', $this->page); Event::fire(new ChunkWasCreated($this->page, $chunk)); return ['status' => $this->page->getCurrentVersion()->getStatus(), 'html' => $chunk->render()]; }
public function postSave(Request $request, Page $page) { $this->authorize('edit', $page); if (!$request->has('force')) { $latest = ChunkFacade::get($request->input('type'), $request->input('slotname'), $page); if ($request->input('chunkId') < $latest->getId()) { if ($template = $request->input('template')) { $latest->template($template); } return response(['chunkId' => $latest->getId(), 'error' => 'conflict', 'html' => view('boomcms::editor.conflict')->render(), 'chunk' => $latest->render(), 'status' => $page->getCurrentVersion()->getStatus()], 500); } } $chunk = ChunkFacade::create($page, $request->except(['template', 'chunkId', 'force'])); $chunk->editable(true); if ($template = $request->input('template')) { $chunk->template($template); } Router::setActivePage($page); View::share('page', $page); Event::fire(new ChunkWasCreated($page, $chunk)); return ['status' => $page->getCurrentVersion()->getStatus(), 'html' => $chunk->render(), 'chunkId' => $chunk->getId()]; }