/** * {@inheritdoc} */ public function getItems() { $items = []; /** @var \Magento\Cms\Model\Page $page */ foreach ($this->collection as $page) { $items[] = ['title' => $page->getTitle(), 'url' => $this->pageHelper->getPageUrl($page->getIdentifier())]; } return $items; }
/** * Prepare page url. Use passed identifier * or retrieve such using passed page id. * * @return string */ public function getHref() { if (!$this->_href) { $this->_href = ''; if ($this->getData('href')) { $this->_href = $this->getData('href'); } elseif ($this->getData('page_id')) { $this->_href = $this->_cmsPage->getPageUrl($this->getData('page_id')); } } return $this->_href; }
/** * Modify no Cookies forward object * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function noCookies(\Magento\Framework\Event\Observer $observer) { $redirect = $observer->getEvent()->getRedirect(); $pageId = $this->_scopeConfig->getValue(\Magento\Cms\Helper\Page::XML_PATH_NO_COOKIES_PAGE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE); $pageUrl = $this->_cmsPage->getPageUrl($pageId); if ($pageUrl) { $redirect->setRedirectUrl($pageUrl); } else { $redirect->setRedirect(true)->setPath('cms/index/noCookies')->setArguments(array()); } return $this; }
/** * @covers \Magento\Cms\Helper\Page::getPageUrl * @param integer|null $pageId * @param integer|null $internalPageId * @param integer $pageLoadResultIndex * @param string|null $expectedResult * * @dataProvider getPageUrlDataProvider */ public function testGetPageUrl($pageId, $internalPageId, $pageLoadResultIndex, $expectedResult) { $storeId = 321; $pageIdentifier = 111; $url = '/some/url'; $pageLoadResultCollection = [null, $this->pageMock]; $this->pageFactoryMock->expects($this->any())->method('create')->willReturn($this->pageMock); $this->pageMock->expects($this->any())->method('getId')->willReturn($internalPageId); $this->storeManagerMock->expects($this->any())->method('getStore')->willReturn($this->storeMock); $this->storeMock->expects($this->any())->method('getId')->willReturn($storeId); $this->pageMock->expects($this->any())->method('setStoreId')->with($storeId)->willReturnSelf(); $this->pageMock->expects($this->any())->method('load')->with($pageId)->willReturn($pageLoadResultCollection[$pageLoadResultIndex]); $this->pageMock->expects($this->any())->method('getIdentifier')->willReturn($pageIdentifier); $this->urlBuilderMock->expects($this->any())->method('getUrl')->with(null, ['_direct' => $pageIdentifier])->willReturn($url); $this->assertEquals($expectedResult, $this->object->getPageUrl($pageId)); }