/** * @return string */ public function fetch() { $render = $this->getRender(); $page = $this->_getPage(); $layoutClass = $page->getLayout($render->getEnvironment()); $layout = new $layoutClass(['page' => $page]); $document = $this->_getDocument(); $renderAdapterPage = new CM_RenderAdapter_Page($render, $page); $renderAdapterLayout = new CM_RenderAdapter_Layout($render, $layout); $page->checkAccessible($render->getEnvironment()); $viewResponse = new CM_Frontend_ViewResponse($document); $frontend = $render->getGlobalResponse(); $frontend->treeExpand($viewResponse); $viewResponse->setTemplateName('default'); $document->prepare($render->getEnvironment(), $viewResponse); $viewResponse->set('viewResponse', $viewResponse); $viewResponse->set('page', $page); $viewResponse->set('layoutContent', $renderAdapterLayout->fetch()); $viewResponse->set('title', $renderAdapterPage->fetchTitleWithBranding()); $viewResponse->set('metaDescription', $renderAdapterPage->fetchDescription()); $viewResponse->set('metaKeywords', $renderAdapterPage->fetchKeywords()); $webFontLoaderConfig = $render->getSite()->getWebFontLoaderConfig(); if ($webFontLoaderConfig) { $viewResponse->set('webFontLoaderConfig', CM_Params::encode($webFontLoaderConfig, true)); } $environmentDefault = new CM_Frontend_Environment($render->getEnvironment()->getSite()); $renderDefault = new CM_Frontend_Render($environmentDefault); $viewResponse->set('renderDefault', $renderDefault); $viewResponse->set('languageList', new CM_Paging_Language_Enabled()); $frontend->getOnloadHeaderJs()->append('cm.options = ' . CM_Params::encode($this->_getOptions(), true)); if ($viewer = $render->getViewer()) { $frontend->getOnloadHeaderJs()->append('cm.viewer = ' . CM_Params::encode($viewer, true)); } $frontend->getOnloadReadyJs()->append('cm.getLayout()._ready();'); $frontend->getOnloadHeaderJs()->append('cm.ready();'); $html = $render->fetchViewResponse($viewResponse); $frontend->treeCollapse(); return $html; }
/** * @param CM_Page_Abstract $page * @return string */ protected function _renderPage(CM_Page_Abstract $page) { $renderAdapterPage = new CM_RenderAdapter_Page($this->getRender(), $page); $this->_title = $renderAdapterPage->fetchTitleWithBranding(); return $renderAdapterPage->fetch(); }