public function testFetchDescriptionKeywordsConsiderNamespaceWideLocation() { $dirTmp = CM_Bootloader::getInstance()->getDirTmp(); $render = $this->getMockBuilder('CM_Frontend_Render')->setMethods(array('getTemplatePath', 'getLayoutPath'))->getMock(); $render->expects($this->any())->method('getTemplatePath')->will($this->returnValue(null)); $render->expects($this->exactly(2))->method('getLayoutPath')->will($this->returnCallback(function ($templateName) use($dirTmp) { $templateFile = new CM_File($dirTmp . $templateName); $templateFile->ensureParentDirectory(); $templateFile->write('test-' . $templateName); return $templateFile->getPath(); })); /** @var CM_Frontend_Render $render */ $page = $this->getMockBuilder('CM_Page_Abstract')->getMockForAbstractClass(); /** @var CM_Page_Abstract $page */ $renderAdapter = new CM_RenderAdapter_Page($render, $page); $this->assertSame('test-Page/Abstract/meta-description.tpl', $renderAdapter->fetchDescription()); $this->assertSame('test-Page/Abstract/meta-keywords.tpl', $renderAdapter->fetchKeywords()); }
/** * @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; }
/** * @return string */ public function fetchKeywords() { return $this->_renderAdapterPage->fetchKeywords(); }