Example #1
0
 public function processUri($uri)
 {
     if (explode('/', $uri)[0] === 'admin') {
         return $this->processAdminUri($uri);
     }
     $mapper = new UriMapper($uri);
     if (!($mappedPage = $mapper->getMappedPage())) {
         App::abort(404);
     }
     $this->currentPageId = $mappedPage->id;
     $this->currentPageObject = $mappedPage;
     $this->modules = $this->bootAvailableModules();
     $panel = new AdminPanel($this->tree, $this->modules);
     $this->adminPanelMarkup = $panel->renderPanel();
     $templateSlug = $mappedPage->templateSlug;
     $templateData = $this->getTemplateDataBySlug($templateSlug);
     $template = $template = new Template($templateData);
     if (!$template->viewFileExists()) {
         App::abort(500, 'Template file missing (' . $templateSlug . ').');
     }
     $contentTypeNames = $template->getContentAssociatedTypes();
     $contentTypesForTemplate = $this->getContentTypesByNames($contentTypeNames);
     $content = [];
     foreach ($contentTypesForTemplate as $contentType) {
         $content[$contentType['name']] = $this->renderContent($contentType, $mappedPage->id);
     }
     $this->pageContent = $content;
     return view('cms::' . $templateSlug, ['data' => ['config' => $this->config, 'title' => $mappedPage->title, 'page' => $mappedPage->toArray(), 'content' => $content, 'contentTypesForTemplate' => $contentTypesForTemplate], 'cms' => $this, 'userIsAdmin' => Auth::user() ? true : false]);
 }