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 category filter abstract model
*
* @api
* @since 100.0.2
*/
abstract class AbstractFilter extends \Magento\Framework\DataObject implements FilterInterface
{
const ATTRIBUTE_OPTIONS_ONLY_WITH_RESULTS = 1;
/**
* Request variable name with filter value
*
* @var string
*/
protected $_requestVar;
/**
* Array of filter items
*
* @var array
*/
protected $_items;
/**
* Catalog layer
*
* @var \Magento\Catalog\Model\Layer
*/
protected $_catalogLayer;
/**
* Store manager
*
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $_storeManager;
/**
* Filter item factory
*
* @var \Magento\Catalog\Model\Layer\Filter\ItemFactory
*/
protected $_filterItemFactory;
/**
* Item Data Builder
*
* @var \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder
*/
protected $itemDataBuilder;
/**
* Constructor
*
* @param \Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Catalog\Model\Layer $layer
* @param \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder
* @param array $data
* @throws \Magento\Framework\Exception\LocalizedException
*/
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,
array $data = []
) {
$this->_filterItemFactory = $filterItemFactory;
$this->_storeManager = $storeManager;
$this->_catalogLayer = $layer;
$this->itemDataBuilder = $itemDataBuilder;
parent::__construct($data);
if ($this->hasAttributeModel()) {
$this->_requestVar = $this->getAttributeModel()->getAttributeCode();
}
}
/**
* Set request variable name which is used for apply filter
*
* @param string $varName
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
public function setRequestVar($varName)
{
$this->_requestVar = $varName;
return $this;
}
/**
* Get request variable name which is used for apply filter
*
* @return string
*/
public function getRequestVar()
{
return $this->_requestVar;
}
/**
* Get filter value for reset current filter state
*
* @return mixed
*/
public function getResetValue()
{
return null;
}
/**
* Retrieve filter value for Clear All Items filter state
*
* @return mixed
*/
public function getCleanValue()
{
return null;
}
/**
* Apply filter to collection
*
* @param \Magento\Framework\App\RequestInterface $request
* @return $this
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function apply(\Magento\Framework\App\RequestInterface $request)
{
return $this;
}
/**
* Get filter items count
*
* @return int
*/
public function getItemsCount()
{
return count($this->getItems());
}
/**
* Get all filter items
*
* @return array
*/
public function getItems()
{
if ($this->_items === null) {
$this->_initItems();
}
return $this->_items;
}
/**
* Set all filter items
*
* @param array $items
* @return $this
*/
public function setItems(array $items)
{
$this->_items = $items;
return $this;
}
/**
* Get data array for building filter items
*
* Result array should have next structure:
* array(
* $index => array(
* 'label' => $label,
* 'value' => $value,
* 'count' => $count
* )
* )
*
* @return array
*/
protected function _getItemsData()
{
return [];
}
/**
* Initialize filter items
*
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
protected function _initItems()
{
$data = $this->_getItemsData();
$items = [];
foreach ($data as $itemData) {
$items[] = $this->_createItem($itemData['label'], $itemData['value'], $itemData['count']);
}
$this->_items = $items;
return $this;
}
/**
* Retrieve layer object
*
* @return \Magento\Catalog\Model\Layer
*/
public function getLayer()
{
$layer = $this->_getData('layer');
if ($layer === null) {
$layer = $this->_catalogLayer;
$this->setData('layer', $layer);
}
return $layer;
}
/**
* Create filter item object
*
* @param string $label
* @param mixed $value
* @param int $count
* @return \Magento\Catalog\Model\Layer\Filter\Item
*/
protected function _createItem($label, $value, $count = 0)
{
return $this->_filterItemFactory->create()
->setFilter($this)
->setLabel($label)
->setValue($value)
->setCount($count);
}
/**
* Get all product ids from collection with applied filters
*
* @return array
*/
protected function _getFilterEntityIds()
{
return $this->getLayer()->getProductCollection()->getAllIdsCache();
}
/**
* Get product collection select object with applied filters
*
* @return \Magento\Framework\DB\Select
*/
protected function _getBaseCollectionSql()
{
return $this->getLayer()->getProductCollection()->getSelect();
}
/**
* Set attribute model to filter
*
* @param \Magento\Eav\Model\Entity\Attribute $attribute
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
public function setAttributeModel($attribute)
{
$this->setRequestVar($attribute->getAttributeCode());
$this->setData('attribute_model', $attribute);
return $this;
}
/**
* Get attribute model associated with filter
*
* @return \Magento\Catalog\Model\ResourceModel\Eav\Attribute
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getAttributeModel()
{
$attribute = $this->getData('attribute_model');
if ($attribute === null) {
throw new \Magento\Framework\Exception\LocalizedException(__('The attribute model is not defined.'));
}
return $attribute;
}
/**
* Get filter text label
*
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getName()
{
return $this->getAttributeModel()->getStoreLabel();
}
/**
* Retrieve current store id scope
*
* @return int
*/
public function getStoreId()
{
$storeId = $this->_getData('store_id');
if ($storeId === null) {
$storeId = $this->_storeManager->getStore()->getId();
}
return $storeId;
}
/**
* Set store id scope
*
* @param int $storeId
* @return $this
*/
public function setStoreId($storeId)
{
return $this->setData('store_id', $storeId);
}
/**
* Retrieve Website ID scope
*
* @return int
*/
public function getWebsiteId()
{
$websiteId = $this->_getData('website_id');
if ($websiteId === null) {
$websiteId = $this->_storeManager->getStore()->getWebsiteId();
}
return $websiteId;
}
/**
* Set Website ID scope
*
* @param int $websiteId
* @return $this
*/
public function setWebsiteId($websiteId)
{
return $this->setData('website_id', $websiteId);
}
/**
* Clear current element link text, for example 'Clear Price'
*
* @return false|string
*/
public function getClearLinkText()
{
return false;
}
/**
* Get option text from frontend model by option id
*
* @param int $optionId
* @throws \Magento\Framework\Exception\LocalizedException
* @return string|bool
*/
protected function getOptionText($optionId)
{
return $this->getAttributeModel()->getFrontend()->getOption($optionId);
}
/**
* Check whether specified attribute can be used in LN
*
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute
* @return int
*/
protected function getAttributeIsFilterable($attribute)
{
return (int)$attribute->getIsFilterable();
}
/**
* Checks whether the option reduces the number of results
*
* @param int $optionCount Count of search results with this option
* @param int $totalSize Current search results count
* @return bool
*/
protected function isOptionReducesResults($optionCount, $totalSize)
{
return $optionCount < $totalSize;
}
}
?>
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 category filter abstract model
*
* @api
* @since 100.0.2
*/
abstract class AbstractFilter extends \Magento\Framework\DataObject implements FilterInterface
{
const ATTRIBUTE_OPTIONS_ONLY_WITH_RESULTS = 1;
/**
* Request variable name with filter value
*
* @var string
*/
protected $_requestVar;
/**
* Array of filter items
*
* @var array
*/
protected $_items;
/**
* Catalog layer
*
* @var \Magento\Catalog\Model\Layer
*/
protected $_catalogLayer;
/**
* Store manager
*
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $_storeManager;
/**
* Filter item factory
*
* @var \Magento\Catalog\Model\Layer\Filter\ItemFactory
*/
protected $_filterItemFactory;
/**
* Item Data Builder
*
* @var \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder
*/
protected $itemDataBuilder;
/**
* Constructor
*
* @param \Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Catalog\Model\Layer $layer
* @param \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder
* @param array $data
* @throws \Magento\Framework\Exception\LocalizedException
*/
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,
array $data = []
) {
$this->_filterItemFactory = $filterItemFactory;
$this->_storeManager = $storeManager;
$this->_catalogLayer = $layer;
$this->itemDataBuilder = $itemDataBuilder;
parent::__construct($data);
if ($this->hasAttributeModel()) {
$this->_requestVar = $this->getAttributeModel()->getAttributeCode();
}
}
/**
* Set request variable name which is used for apply filter
*
* @param string $varName
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
public function setRequestVar($varName)
{
$this->_requestVar = $varName;
return $this;
}
/**
* Get request variable name which is used for apply filter
*
* @return string
*/
public function getRequestVar()
{
return $this->_requestVar;
}
/**
* Get filter value for reset current filter state
*
* @return mixed
*/
public function getResetValue()
{
return null;
}
/**
* Retrieve filter value for Clear All Items filter state
*
* @return mixed
*/
public function getCleanValue()
{
return null;
}
/**
* Apply filter to collection
*
* @param \Magento\Framework\App\RequestInterface $request
* @return $this
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function apply(\Magento\Framework\App\RequestInterface $request)
{
return $this;
}
/**
* Get filter items count
*
* @return int
*/
public function getItemsCount()
{
return count($this->getItems());
}
/**
* Get all filter items
*
* @return array
*/
public function getItems()
{
if ($this->_items === null) {
$this->_initItems();
}
return $this->_items;
}
/**
* Set all filter items
*
* @param array $items
* @return $this
*/
public function setItems(array $items)
{
$this->_items = $items;
return $this;
}
/**
* Get data array for building filter items
*
* Result array should have next structure:
* array(
* $index => array(
* 'label' => $label,
* 'value' => $value,
* 'count' => $count
* )
* )
*
* @return array
*/
protected function _getItemsData()
{
return [];
}
/**
* Initialize filter items
*
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
protected function _initItems()
{
$data = $this->_getItemsData();
$items = [];
foreach ($data as $itemData) {
$items[] = $this->_createItem($itemData['label'], $itemData['value'], $itemData['count']);
}
$this->_items = $items;
return $this;
}
/**
* Retrieve layer object
*
* @return \Magento\Catalog\Model\Layer
*/
public function getLayer()
{
$layer = $this->_getData('layer');
if ($layer === null) {
$layer = $this->_catalogLayer;
$this->setData('layer', $layer);
}
return $layer;
}
/**
* Create filter item object
*
* @param string $label
* @param mixed $value
* @param int $count
* @return \Magento\Catalog\Model\Layer\Filter\Item
*/
protected function _createItem($label, $value, $count = 0)
{
return $this->_filterItemFactory->create()
->setFilter($this)
->setLabel($label)
->setValue($value)
->setCount($count);
}
/**
* Get all product ids from collection with applied filters
*
* @return array
*/
protected function _getFilterEntityIds()
{
return $this->getLayer()->getProductCollection()->getAllIdsCache();
}
/**
* Get product collection select object with applied filters
*
* @return \Magento\Framework\DB\Select
*/
protected function _getBaseCollectionSql()
{
return $this->getLayer()->getProductCollection()->getSelect();
}
/**
* Set attribute model to filter
*
* @param \Magento\Eav\Model\Entity\Attribute $attribute
* @return \Magento\Catalog\Model\Layer\Filter\AbstractFilter
*/
public function setAttributeModel($attribute)
{
$this->setRequestVar($attribute->getAttributeCode());
$this->setData('attribute_model', $attribute);
return $this;
}
/**
* Get attribute model associated with filter
*
* @return \Magento\Catalog\Model\ResourceModel\Eav\Attribute
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getAttributeModel()
{
$attribute = $this->getData('attribute_model');
if ($attribute === null) {
throw new \Magento\Framework\Exception\LocalizedException(__('The attribute model is not defined.'));
}
return $attribute;
}
/**
* Get filter text label
*
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getName()
{
return $this->getAttributeModel()->getStoreLabel();
}
/**
* Retrieve current store id scope
*
* @return int
*/
public function getStoreId()
{
$storeId = $this->_getData('store_id');
if ($storeId === null) {
$storeId = $this->_storeManager->getStore()->getId();
}
return $storeId;
}
/**
* Set store id scope
*
* @param int $storeId
* @return $this
*/
public function setStoreId($storeId)
{
return $this->setData('store_id', $storeId);
}
/**
* Retrieve Website ID scope
*
* @return int
*/
public function getWebsiteId()
{
$websiteId = $this->_getData('website_id');
if ($websiteId === null) {
$websiteId = $this->_storeManager->getStore()->getWebsiteId();
}
return $websiteId;
}
/**
* Set Website ID scope
*
* @param int $websiteId
* @return $this
*/
public function setWebsiteId($websiteId)
{
return $this->setData('website_id', $websiteId);
}
/**
* Clear current element link text, for example 'Clear Price'
*
* @return false|string
*/
public function getClearLinkText()
{
return false;
}
/**
* Get option text from frontend model by option id
*
* @param int $optionId
* @throws \Magento\Framework\Exception\LocalizedException
* @return string|bool
*/
protected function getOptionText($optionId)
{
return $this->getAttributeModel()->getFrontend()->getOption($optionId);
}
/**
* Check whether specified attribute can be used in LN
*
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute
* @return int
*/
protected function getAttributeIsFilterable($attribute)
{
return (int)$attribute->getIsFilterable();
}
/**
* Checks whether the option reduces the number of results
*
* @param int $optionCount Count of search results with this option
* @param int $totalSize Current search results count
* @return bool
*/
protected function isOptionReducesResults($optionCount, $totalSize)
{
return $optionCount < $totalSize;
}
}
Function Calls
| None |
Stats
| MD5 | 55b5605ae8eefdf3d0258c949501ac1a |
| Eval Count | 0 |
| Decode Time | 104 ms |