Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /** * Copyright Magento, Inc. All rights reserved. * See COPYING.txt for license ..
Decoded Output download
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Block;
use Magento\Catalog\Model\Category;
use Magento\Customer\Model\Context;
/**
* Catalog navigation
*
* @api
* @SuppressWarnings(PHPMD.LongVariable)
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @since 100.0.2
*/
class Navigation extends \Magento\Framework\View\Element\Template implements
\Magento\Framework\DataObject\IdentityInterface
{
/**
* @var Category
*/
protected $_categoryInstance;
/**
* Current category key
*
* @var string
*/
protected $_currentCategoryKey;
/**
* Array of level position counters
*
* @var array
*/
protected $_itemLevelPositions = [];
/**
* Catalog category
*
* @var \Magento\Catalog\Helper\Category
*/
protected $_catalogCategory;
/**
* @var \Magento\Framework\Registry
*/
protected $_registry;
/**
* Customer session
*
* @var \Magento\Framework\App\Http\Context
*/
protected $httpContext;
/**
* Catalog layer
*
* @var \Magento\Catalog\Model\Layer
*/
protected $_catalogLayer;
/**
* Product collection factory
*
* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory
*/
protected $_productCollectionFactory;
/**
* @var \Magento\Catalog\Model\Indexer\Category\Flat\State
*/
protected $flatState;
/**
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Catalog\Model\CategoryFactory $categoryFactory
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
* @param \Magento\Catalog\Model\Layer\Resolver $layerResolver
* @param \Magento\Framework\App\Http\Context $httpContext
* @param \Magento\Catalog\Helper\Category $catalogCategory
* @param \Magento\Framework\Registry $registry
* @param \Magento\Catalog\Model\Indexer\Category\Flat\State $flatState
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Catalog\Model\CategoryFactory $categoryFactory,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Catalog\Model\Layer\Resolver $layerResolver,
\Magento\Framework\App\Http\Context $httpContext,
\Magento\Catalog\Helper\Category $catalogCategory,
\Magento\Framework\Registry $registry,
\Magento\Catalog\Model\Indexer\Category\Flat\State $flatState,
array $data = []
) {
$this->_productCollectionFactory = $productCollectionFactory;
$this->_catalogLayer = $layerResolver->get();
$this->httpContext = $httpContext;
$this->_catalogCategory = $catalogCategory;
$this->_registry = $registry;
$this->flatState = $flatState;
$this->_categoryInstance = $categoryFactory->create();
parent::__construct($context, $data);
}
/**
* @return void
*/
protected function _construct()
{
$this->addData(
[
'cache_lifetime' => false,
'cache_tags' => [Category::CACHE_TAG, \Magento\Store\Model\Group::CACHE_TAG],
]
);
}
/**
* Get current category
*
* @return Category
*/
public function getCategory()
{
return $this->_registry->registry('current_category');
}
/**
* Get Key pieces for caching block content
*
* @return array
*/
public function getCacheKeyInfo()
{
$shortCacheId = [
'CATALOG_NAVIGATION',
$this->_storeManager->getStore()->getId(),
$this->_design->getDesignTheme()->getId(),
$this->httpContext->getValue(Context::CONTEXT_GROUP),
'template' => $this->getTemplate(),
'name' => $this->getNameInLayout(),
$this->getCurrentCategoryKey(),
];
$cacheId = $shortCacheId;
$shortCacheId = array_values($shortCacheId);
$shortCacheId = implode('|', $shortCacheId);
// md5() here is not for cryptographic use.
// phpcs:ignore Magento2.Security.InsecureFunction
$shortCacheId = md5($shortCacheId);
$cacheId['category_path'] = $this->getCurrentCategoryKey();
$cacheId['short_cache_id'] = $shortCacheId;
return $cacheId;
}
/**
* Get current category key
*
* @return string
*/
public function getCurrentCategoryKey()
{
if (!$this->_currentCategoryKey) {
$category = $this->_registry->registry('current_category');
if ($category) {
$this->_currentCategoryKey = $category->getPath();
} else {
$this->_currentCategoryKey = $this->_storeManager->getStore()->getRootCategoryId();
}
}
return $this->_currentCategoryKey;
}
/**
* Retrieve child categories of current category
*
* @return \Magento\Framework\Data\Tree\Node\Collection
*/
public function getCurrentChildCategories()
{
$categories = $this->_catalogLayer->getCurrentCategory()->getChildrenCategories();
/** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */
$productCollection = $this->_productCollectionFactory->create();
$this->_catalogLayer->prepareProductCollection($productCollection);
$productCollection->addCountToCategories($categories);
return $categories;
}
/**
* Check activity of category
*
* @param \Magento\Framework\DataObject $category
* @return bool
*/
public function isCategoryActive($category)
{
if ($this->getCurrentCategory()) {
return in_array($category->getId(), $this->getCurrentCategory()->getPathIds());
}
return false;
}
/**
* Get url for category data
*
* @param Category $category
* @return string
*/
public function getCategoryUrl($category)
{
if ($category instanceof Category) {
$url = $category->getUrl();
} else {
$url = $this->_categoryInstance->setData($category->getData())->getUrl();
}
return $url;
}
/**
* Enter description here...
*
* @return Category
*/
public function getCurrentCategory()
{
return $this->_catalogLayer->getCurrentCategory();
}
/**
* Return identifiers for produced content
*
* @return array
*/
public function getIdentities()
{
return [\Magento\Catalog\Model\Category::CACHE_TAG, \Magento\Store\Model\Group::CACHE_TAG];
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Block;
use Magento\Catalog\Model\Category;
use Magento\Customer\Model\Context;
/**
* Catalog navigation
*
* @api
* @SuppressWarnings(PHPMD.LongVariable)
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @since 100.0.2
*/
class Navigation extends \Magento\Framework\View\Element\Template implements
\Magento\Framework\DataObject\IdentityInterface
{
/**
* @var Category
*/
protected $_categoryInstance;
/**
* Current category key
*
* @var string
*/
protected $_currentCategoryKey;
/**
* Array of level position counters
*
* @var array
*/
protected $_itemLevelPositions = [];
/**
* Catalog category
*
* @var \Magento\Catalog\Helper\Category
*/
protected $_catalogCategory;
/**
* @var \Magento\Framework\Registry
*/
protected $_registry;
/**
* Customer session
*
* @var \Magento\Framework\App\Http\Context
*/
protected $httpContext;
/**
* Catalog layer
*
* @var \Magento\Catalog\Model\Layer
*/
protected $_catalogLayer;
/**
* Product collection factory
*
* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory
*/
protected $_productCollectionFactory;
/**
* @var \Magento\Catalog\Model\Indexer\Category\Flat\State
*/
protected $flatState;
/**
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Catalog\Model\CategoryFactory $categoryFactory
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
* @param \Magento\Catalog\Model\Layer\Resolver $layerResolver
* @param \Magento\Framework\App\Http\Context $httpContext
* @param \Magento\Catalog\Helper\Category $catalogCategory
* @param \Magento\Framework\Registry $registry
* @param \Magento\Catalog\Model\Indexer\Category\Flat\State $flatState
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Catalog\Model\CategoryFactory $categoryFactory,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Catalog\Model\Layer\Resolver $layerResolver,
\Magento\Framework\App\Http\Context $httpContext,
\Magento\Catalog\Helper\Category $catalogCategory,
\Magento\Framework\Registry $registry,
\Magento\Catalog\Model\Indexer\Category\Flat\State $flatState,
array $data = []
) {
$this->_productCollectionFactory = $productCollectionFactory;
$this->_catalogLayer = $layerResolver->get();
$this->httpContext = $httpContext;
$this->_catalogCategory = $catalogCategory;
$this->_registry = $registry;
$this->flatState = $flatState;
$this->_categoryInstance = $categoryFactory->create();
parent::__construct($context, $data);
}
/**
* @return void
*/
protected function _construct()
{
$this->addData(
[
'cache_lifetime' => false,
'cache_tags' => [Category::CACHE_TAG, \Magento\Store\Model\Group::CACHE_TAG],
]
);
}
/**
* Get current category
*
* @return Category
*/
public function getCategory()
{
return $this->_registry->registry('current_category');
}
/**
* Get Key pieces for caching block content
*
* @return array
*/
public function getCacheKeyInfo()
{
$shortCacheId = [
'CATALOG_NAVIGATION',
$this->_storeManager->getStore()->getId(),
$this->_design->getDesignTheme()->getId(),
$this->httpContext->getValue(Context::CONTEXT_GROUP),
'template' => $this->getTemplate(),
'name' => $this->getNameInLayout(),
$this->getCurrentCategoryKey(),
];
$cacheId = $shortCacheId;
$shortCacheId = array_values($shortCacheId);
$shortCacheId = implode('|', $shortCacheId);
// md5() here is not for cryptographic use.
// phpcs:ignore Magento2.Security.InsecureFunction
$shortCacheId = md5($shortCacheId);
$cacheId['category_path'] = $this->getCurrentCategoryKey();
$cacheId['short_cache_id'] = $shortCacheId;
return $cacheId;
}
/**
* Get current category key
*
* @return string
*/
public function getCurrentCategoryKey()
{
if (!$this->_currentCategoryKey) {
$category = $this->_registry->registry('current_category');
if ($category) {
$this->_currentCategoryKey = $category->getPath();
} else {
$this->_currentCategoryKey = $this->_storeManager->getStore()->getRootCategoryId();
}
}
return $this->_currentCategoryKey;
}
/**
* Retrieve child categories of current category
*
* @return \Magento\Framework\Data\Tree\Node\Collection
*/
public function getCurrentChildCategories()
{
$categories = $this->_catalogLayer->getCurrentCategory()->getChildrenCategories();
/** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */
$productCollection = $this->_productCollectionFactory->create();
$this->_catalogLayer->prepareProductCollection($productCollection);
$productCollection->addCountToCategories($categories);
return $categories;
}
/**
* Check activity of category
*
* @param \Magento\Framework\DataObject $category
* @return bool
*/
public function isCategoryActive($category)
{
if ($this->getCurrentCategory()) {
return in_array($category->getId(), $this->getCurrentCategory()->getPathIds());
}
return false;
}
/**
* Get url for category data
*
* @param Category $category
* @return string
*/
public function getCategoryUrl($category)
{
if ($category instanceof Category) {
$url = $category->getUrl();
} else {
$url = $this->_categoryInstance->setData($category->getData())->getUrl();
}
return $url;
}
/**
* Enter description here...
*
* @return Category
*/
public function getCurrentCategory()
{
return $this->_catalogLayer->getCurrentCategory();
}
/**
* Return identifiers for produced content
*
* @return array
*/
public function getIdentities()
{
return [\Magento\Catalog\Model\Category::CACHE_TAG, \Magento\Store\Model\Group::CACHE_TAG];
}
}
Function Calls
None |
Stats
MD5 | 1fe25c021af9c680c3932efca7357a6b |
Eval Count | 0 |
Decode Time | 114 ms |