![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-cms/Block/Widget/Page/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Cms\Block\Widget\Page; /** * Widget to display link to CMS page */ class Link extends \Magento\Framework\View\Element\Html\Link implements \Magento\Widget\Block\BlockInterface { /** * Prepared href attribute * * @var string */ protected $_href; /** * Prepared title attribute * * @var string */ protected $_title; /** * Prepared anchor text * * @var string */ protected $_anchorText; /** * @var \Magento\Cms\Model\ResourceModel\Page */ protected $_resourcePage; /** * Cms page * * @var \Magento\Cms\Helper\Page */ protected $_cmsPage; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Cms\Model\ResourceModel\Page $resourcePage * @param \Magento\Cms\Helper\Page $cmsPage * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Cms\Model\ResourceModel\Page $resourcePage, \Magento\Cms\Helper\Page $cmsPage, array $data = [] ) { parent::__construct($context, $data); $this->_resourcePage = $resourcePage; $this->_cmsPage = $cmsPage; } /** * 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; } /** * Prepare anchor title attribute using passed title * as parameter or retrieve page title from DB using passed identifier or page id. * * @return string */ public function getTitle() { if (!$this->_title) { $this->_title = ''; if ($this->getData('title') !== null) { // compare to null used here bc user can specify blank title $this->_title = $this->getData('title'); } elseif ($this->getData('page_id')) { $this->_title = $this->_resourcePage->getCmsPageTitleById($this->getData('page_id')); } elseif ($this->getData('href')) { $this->_title = $this->_resourcePage->setStore($this->_storeManager->getStore()) ->getCmsPageTitleByIdentifier($this->getData('href')); } } return $this->_title; } /** * Prepare label using passed text as parameter. * If anchor text was not specified use title instead and * if title will be blank string, page identifier will be used. * * @return string */ public function getLabel() { if ($this->getData('anchor_text')) { $this->_anchorText = $this->getData('anchor_text'); } elseif ($this->getData('href')) { $this->_anchorText = $this->_resourcePage->setStore( $this->_storeManager->getStore() )->getCmsPageTitleByIdentifier( $this->getData('href') ); } elseif ($this->getData('page_id')) { $this->_anchorText = $this->_resourcePage->getCmsPageTitleById($this->getData('page_id')); } elseif ($this->getTitle()) { $this->_anchorText = $this->getTitle(); } else { $this->_anchorText = $this->getData('href'); } return $this->_anchorText; } }