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\Model\Layer\Filter;
/**
* Layer attribute filter
*
* @SuppressWarnings(PHPMD.LongVariable)
*/
class Attribute extends \Magento\Catalog\Model\Layer\Filter\AbstractFilter
{
/**
* Resource instance
*
* @var \Magento\Catalog\Model\ResourceModel\Layer\Filter\Attribute
*/
protected $_resource;
/**
* Magento string lib
*
* @var \Magento\Framework\Stdlib\StringUtils
*/
protected $string;
/**
* @var \Magento\Framework\Filter\StripTags
*/
protected $tagFilter;
/**
* @param ItemFactory $filterItemFactory
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Catalog\Model\Layer $layer
* @param \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder
* @param \Magento\Catalog\Model\ResourceModel\Layer\Filter\AttributeFactory $filterAttributeFactory
* @param \Magento\Framework\Stdlib\StringUtils $string
* @param \Magento\Framework\Filter\StripTags $tagFilter
* @param array $data
*/
public function __construct(
\Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Catalog\Model\Layer $layer,
\Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder,
\Magento\Catalog\Model\ResourceModel\Layer\Filter\AttributeFactory $filterAttributeFactory,
\Magento\Framework\Stdlib\StringUtils $string,
\Magento\Framework\Filter\StripTags $tagFilter,
array $data = []
) {
$this->_resource = $filterAttributeFactory->create();
$this->string = $string;
$this->_requestVar = 'attribute';
$this->tagFilter = $tagFilter;
parent::__construct($filterItemFactory, $storeManager, $layer, $itemDataBuilder, $data);
}
/**
* Retrieve resource instance
*
* @return \Magento\Catalog\Model\ResourceModel\Layer\Filter\Attribute
*/
protected function _getResource()
{
return $this->_resource;
}
/**
* Apply attribute option filter to product collection
*
* @param \Magento\Framework\App\RequestInterface $request
* @return $this
*/
public function apply(\Magento\Framework\App\RequestInterface $request)
{
$filter = $request->getParam($this->_requestVar);
if (is_array($filter)) {
return $this;
}
$text = $this->getOptionText($filter);
if ($filter && strlen($text)) {
$this->_getResource()->applyFilterToCollection($this, $filter);
$this->getLayer()->getState()->addFilter($this->_createItem($text, $filter));
$this->_items = [];
}
return $this;
}
/**
* Get data array for building attribute filter items
*
* @throws \Magento\Framework\Exception\LocalizedException
* @return array
*/
protected function _getItemsData()
{
$attribute = $this->getAttributeModel();
$this->_requestVar = $attribute->getAttributeCode();
$options = $attribute->getFrontend()->getSelectOptions();
$optionsCount = $this->_getResource()->getCount($this);
foreach ($options as $option) {
if (is_array($option['value'])) {
continue;
}
if ($this->string->strlen($option['value'])) {
// Check filter type
if ($this->getAttributeIsFilterable($attribute) == self::ATTRIBUTE_OPTIONS_ONLY_WITH_RESULTS) {
if (!empty($optionsCount[$option['value']])) {
$this->itemDataBuilder->addItemData(
$this->tagFilter->filter($option['label']),
$option['value'],
$optionsCount[$option['value']]
);
}
} else {
$this->itemDataBuilder->addItemData(
$this->tagFilter->filter($option['label']),
$option['value'],
isset($optionsCount[$option['value']]) ? $optionsCount[$option['value']] : 0
);
}
}
}
return $this->itemDataBuilder->build();
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Model\Layer\Filter;
/**
* Layer attribute filter
*
* @SuppressWarnings(PHPMD.LongVariable)
*/
class Attribute extends \Magento\Catalog\Model\Layer\Filter\AbstractFilter
{
/**
* Resource instance
*
* @var \Magento\Catalog\Model\ResourceModel\Layer\Filter\Attribute
*/
protected $_resource;
/**
* Magento string lib
*
* @var \Magento\Framework\Stdlib\StringUtils
*/
protected $string;
/**
* @var \Magento\Framework\Filter\StripTags
*/
protected $tagFilter;
/**
* @param ItemFactory $filterItemFactory
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Catalog\Model\Layer $layer
* @param \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder
* @param \Magento\Catalog\Model\ResourceModel\Layer\Filter\AttributeFactory $filterAttributeFactory
* @param \Magento\Framework\Stdlib\StringUtils $string
* @param \Magento\Framework\Filter\StripTags $tagFilter
* @param array $data
*/
public function __construct(
\Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Catalog\Model\Layer $layer,
\Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder,
\Magento\Catalog\Model\ResourceModel\Layer\Filter\AttributeFactory $filterAttributeFactory,
\Magento\Framework\Stdlib\StringUtils $string,
\Magento\Framework\Filter\StripTags $tagFilter,
array $data = []
) {
$this->_resource = $filterAttributeFactory->create();
$this->string = $string;
$this->_requestVar = 'attribute';
$this->tagFilter = $tagFilter;
parent::__construct($filterItemFactory, $storeManager, $layer, $itemDataBuilder, $data);
}
/**
* Retrieve resource instance
*
* @return \Magento\Catalog\Model\ResourceModel\Layer\Filter\Attribute
*/
protected function _getResource()
{
return $this->_resource;
}
/**
* Apply attribute option filter to product collection
*
* @param \Magento\Framework\App\RequestInterface $request
* @return $this
*/
public function apply(\Magento\Framework\App\RequestInterface $request)
{
$filter = $request->getParam($this->_requestVar);
if (is_array($filter)) {
return $this;
}
$text = $this->getOptionText($filter);
if ($filter && strlen($text)) {
$this->_getResource()->applyFilterToCollection($this, $filter);
$this->getLayer()->getState()->addFilter($this->_createItem($text, $filter));
$this->_items = [];
}
return $this;
}
/**
* Get data array for building attribute filter items
*
* @throws \Magento\Framework\Exception\LocalizedException
* @return array
*/
protected function _getItemsData()
{
$attribute = $this->getAttributeModel();
$this->_requestVar = $attribute->getAttributeCode();
$options = $attribute->getFrontend()->getSelectOptions();
$optionsCount = $this->_getResource()->getCount($this);
foreach ($options as $option) {
if (is_array($option['value'])) {
continue;
}
if ($this->string->strlen($option['value'])) {
// Check filter type
if ($this->getAttributeIsFilterable($attribute) == self::ATTRIBUTE_OPTIONS_ONLY_WITH_RESULTS) {
if (!empty($optionsCount[$option['value']])) {
$this->itemDataBuilder->addItemData(
$this->tagFilter->filter($option['label']),
$option['value'],
$optionsCount[$option['value']]
);
}
} else {
$this->itemDataBuilder->addItemData(
$this->tagFilter->filter($option['label']),
$option['value'],
isset($optionsCount[$option['value']]) ? $optionsCount[$option['value']] : 0
);
}
}
}
return $this->itemDataBuilder->build();
}
}
Function Calls
None |
Stats
MD5 | 4a476cdbed76b7fc10fd7cd10cf3e03c |
Eval Count | 0 |
Decode Time | 118 ms |