![]() 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-catalog/Block/Category/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Block\Category; /** * Class View * @api * @package Magento\Catalog\Block\Category * @since 100.0.2 */ class View extends \Magento\Framework\View\Element\Template implements \Magento\Framework\DataObject\IdentityInterface { /** * Core registry * * @var \Magento\Framework\Registry */ protected $_coreRegistry = null; /** * Catalog layer * * @var \Magento\Catalog\Model\Layer */ protected $_catalogLayer; /** * @var \Magento\Catalog\Helper\Category */ protected $_categoryHelper; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver * @param \Magento\Framework\Registry $registry * @param \Magento\Catalog\Helper\Category $categoryHelper * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Layer\Resolver $layerResolver, \Magento\Framework\Registry $registry, \Magento\Catalog\Helper\Category $categoryHelper, array $data = [] ) { $this->_categoryHelper = $categoryHelper; $this->_catalogLayer = $layerResolver->get(); $this->_coreRegistry = $registry; parent::__construct($context, $data); } /** * @return $this */ protected function _prepareLayout() { parent::_prepareLayout(); $this->getLayout()->createBlock(\Magento\Catalog\Block\Breadcrumbs::class); $category = $this->getCurrentCategory(); if ($category) { $title = $category->getMetaTitle(); if ($title) { $this->pageConfig->getTitle()->set($title); } $description = $category->getMetaDescription(); if ($description) { $this->pageConfig->setDescription($description); } $keywords = $category->getMetaKeywords(); if ($keywords) { $this->pageConfig->setKeywords($keywords); } if ($this->_categoryHelper->canUseCanonicalTag()) { $this->pageConfig->addRemotePageAsset( $category->getUrl(), 'canonical', ['attributes' => ['rel' => 'canonical']] ); } $pageMainTitle = $this->getLayout()->getBlock('page.main.title'); if ($pageMainTitle) { $pageMainTitle->setPageTitle($this->getCurrentCategory()->getName()); } } return $this; } /** * @return string */ public function getProductListHtml() { return $this->getChildHtml('product_list'); } /** * Retrieve current category model object * * @return \Magento\Catalog\Model\Category */ public function getCurrentCategory() { if (!$this->hasData('current_category')) { $this->setData('current_category', $this->_coreRegistry->registry('current_category')); } return $this->getData('current_category'); } /** * @return mixed */ public function getCmsBlockHtml() { if (!$this->getData('cms_block_html')) { $html = $this->getLayout()->createBlock( \Magento\Cms\Block\Block::class )->setBlockId( $this->getCurrentCategory()->getLandingPage() )->toHtml(); $this->setData('cms_block_html', $html); } return $this->getData('cms_block_html'); } /** * Check if category display mode is "Products Only" * @return bool */ public function isProductMode() { return $this->getCurrentCategory()->getDisplayMode() == \Magento\Catalog\Model\Category::DM_PRODUCT; } /** * Check if category display mode is "Static Block and Products" * @return bool */ public function isMixedMode() { return $this->getCurrentCategory()->getDisplayMode() == \Magento\Catalog\Model\Category::DM_MIXED; } /** * Check if category display mode is "Static Block Only" * For anchor category with applied filter Static Block Only mode not allowed * * @return bool */ public function isContentMode() { $category = $this->getCurrentCategory(); $res = false; if ($category->getDisplayMode() == \Magento\Catalog\Model\Category::DM_PAGE) { $res = true; if ($category->getIsAnchor()) { $state = $this->_catalogLayer->getState(); if ($state && $state->getFilters()) { $res = false; } } } return $res; } /** * Return identifiers for produced content * * @return array */ public function getIdentities() { return $this->getCurrentCategory()->getIdentities(); } }