Example #1
0
 /**
  * Set new template to a page.
  *
  * @param Page                  $page
  * @param SwitchTemplateRequest $request
  *
  * @return array
  */
 public function switchTemplate(Page $page, SwitchTemplateRequest $request)
 {
     $connectedBlocks = $this->blocksAreConnected($page, $request->get('connected_blocks'));
     $template = Template::findOrFail($request->get('template_id'));
     $page->template()->associate($template)->save();
     $this->updateTemplateBlocks($page, $request->get('connected_blocks'));
     event(new PageTemplateWasSwitched($page));
     $url = route('zxadmin.page.edit', [$page->id, $page->template->blocks()->firstOrFail()->identifier]);
     return ['connectedBlocks' => $connectedBlocks, 'template' => $template, 'url' => $url];
 }