Пример #1
0
 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()];
 }
Пример #2
0
 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()];
 }