123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Theme\Block\Html\Header;
- /**
- * Logo page header block
- *
- * @api
- * @since 100.0.2
- */
- class Logo extends \Magento\Framework\View\Element\Template
- {
- /**
- * Current template name
- *
- * @var string
- */
- protected $_template = 'Magento_Theme::html/header/logo.phtml';
- /**
- * @var \Magento\MediaStorage\Helper\File\Storage\Database
- */
- protected $_fileStorageHelper;
- /**
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\MediaStorage\Helper\File\Storage\Database $fileStorageHelper
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\MediaStorage\Helper\File\Storage\Database $fileStorageHelper,
- array $data = []
- ) {
- $this->_fileStorageHelper = $fileStorageHelper;
- parent::__construct($context, $data);
- }
- /**
- * Check if current url is url for home page
- *
- * @deprecated 101.0.1 This function is no longer used. It was previously used by
- * Magento/Theme/view/frontend/templates/html/header/logo.phtml
- * to check if the logo should be clickable on the homepage.
- *
- * @return bool
- */
- public function isHomePage()
- {
- $currentUrl = $this->getUrl('', ['_current' => true]);
- $urlRewrite = $this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true]);
- return $currentUrl == $urlRewrite;
- }
- /**
- * Get logo image URL
- *
- * @return string
- */
- public function getLogoSrc()
- {
- if (empty($this->_data['logo_src'])) {
- $this->_data['logo_src'] = $this->_getLogoUrl();
- }
- return $this->_data['logo_src'];
- }
- /**
- * Retrieve logo text
- *
- * @return string
- */
- public function getLogoAlt()
- {
- if (empty($this->_data['logo_alt'])) {
- $this->_data['logo_alt'] = $this->_scopeConfig->getValue(
- 'design/header/logo_alt',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- }
- return $this->_data['logo_alt'];
- }
- /**
- * Retrieve logo width
- *
- * @return int
- */
- public function getLogoWidth()
- {
- if (empty($this->_data['logo_width'])) {
- $this->_data['logo_width'] = $this->_scopeConfig->getValue(
- 'design/header/logo_width',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- }
- return (int)$this->_data['logo_width'] ? : (int)$this->getLogoImgWidth();
- }
- /**
- * Retrieve logo height
- *
- * @return int
- */
- public function getLogoHeight()
- {
- if (empty($this->_data['logo_height'])) {
- $this->_data['logo_height'] = $this->_scopeConfig->getValue(
- 'design/header/logo_height',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- }
- return (int)$this->_data['logo_height'] ? : (int)$this->getLogoImgHeight();
- }
- /**
- * Retrieve logo image URL
- *
- * @return string
- */
- protected function _getLogoUrl()
- {
- $folderName = \Magento\Config\Model\Config\Backend\Image\Logo::UPLOAD_DIR;
- $storeLogoPath = $this->_scopeConfig->getValue(
- 'design/header/logo_src',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- $path = $folderName . '/' . $storeLogoPath;
- $logoUrl = $this->_urlBuilder
- ->getBaseUrl(['_type' => \Magento\Framework\UrlInterface::URL_TYPE_MEDIA]) . $path;
- if ($storeLogoPath !== null && $this->_isFile($path)) {
- $url = $logoUrl;
- } elseif ($this->getLogoFile()) {
- $url = $this->getViewFileUrl($this->getLogoFile());
- } else {
- $url = $this->getViewFileUrl('images/logo.svg');
- }
- return $url;
- }
- /**
- * If DB file storage is on - find there, otherwise - just file_exists
- *
- * @param string $filename relative path
- * @return bool
- */
- protected function _isFile($filename)
- {
- if ($this->_fileStorageHelper->checkDbUsage() && !$this->getMediaDirectory()->isFile($filename)) {
- $this->_fileStorageHelper->saveFileToFilesystem($filename);
- }
- return $this->getMediaDirectory()->isFile($filename);
- }
- }
|