17 \Magento\Framework\DataObject\IdentityInterface
62 \
Magento\Cms\Model\Template\FilterProvider $filterProvider,
64 \
Magento\Cms\Model\PageFactory $pageFactory,
68 parent::__construct($context,
$data);
71 $this->_filterProvider = $filterProvider;
73 $this->_pageFactory = $pageFactory;
82 public function getPage()
85 if ($this->getPageId()) {
87 $page = $this->_pageFactory->create();
88 $page->setStoreId($this->_storeManager->getStore()->getId())->load($this->getPageId(),
'identifier');
104 $page = $this->getPage();
106 $this->pageConfig->addBodyClass(
'cms-' .
$page->getIdentifier());
107 $metaTitle =
$page->getMetaTitle();
108 $this->pageConfig->getTitle()->set($metaTitle ? $metaTitle :
$page->getTitle());
109 $this->pageConfig->setKeywords(
$page->getMetaKeywords());
110 $this->pageConfig->setDescription(
$page->getMetaDescription());
112 $pageMainTitle = $this->
getLayout()->getBlock(
'page.main.title');
113 if ($pageMainTitle) {
115 $cmsTitle =
$page->getContentHeading() ?:
' ';
116 $pageMainTitle->setPageTitle($this->
escapeHtml($cmsTitle));
118 return parent::_prepareLayout();
130 $homePageIdentifier = $this->_scopeConfig->getValue(
131 'web/default/cms_home_page',
134 $homePageDelimiterPosition = strrpos($homePageIdentifier,
'|');
135 if ($homePageDelimiterPosition) {
136 $homePageIdentifier = substr($homePageIdentifier, 0, $homePageDelimiterPosition);
138 $noRouteIdentifier = $this->_scopeConfig->getValue(
139 'web/default/cms_no_route',
142 $noRouteDelimiterPosition = strrpos($noRouteIdentifier,
'|');
143 if ($noRouteDelimiterPosition) {
144 $noRouteIdentifier = substr($noRouteIdentifier, 0, $noRouteDelimiterPosition);
147 && ($breadcrumbsBlock = $this->
getLayout()->getBlock(
'breadcrumbs'))
148 && $page->getIdentifier() !== $homePageIdentifier
149 &&
$page->getIdentifier() !== $noRouteIdentifier
151 $breadcrumbsBlock->addCrumb(
154 'label' =>
__(
'Home'),
155 'title' =>
__(
'Go to Home Page'),
156 'link' => $this->_storeManager->getStore()->getBaseUrl()
159 $breadcrumbsBlock->addCrumb(
'cms_page', [
'label' =>
$page->getTitle(),
'title' =>
$page->getTitle()]);
170 $html = $this->_filterProvider->getPageFilter()->filter($this->getPage()->getContent());
_addBreadcrumbs(\Magento\Cms\Model\Page $page)
getData($key='', $index=null)
escapeHtml($data, $allowedTags=null)
__construct(\Magento\Framework\View\Element\Context $context, \Magento\Cms\Model\Page $page, \Magento\Cms\Model\Template\FilterProvider $filterProvider, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Cms\Model\PageFactory $pageFactory, \Magento\Framework\View\Page\Config $pageConfig, array $data=[])
setData($key, $value=null)