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\Adminhtml\Product;
use Magento\Store\Model\Store;
/**
* Catalog product grid
*
* @api
* @since 100.0.2
*/
class Grid extends \Magento\Backend\Block\Widget\Grid\Extended
{
/**
* @var \Magento\Framework\Module\Manager
*/
protected $moduleManager;
/**
* @var \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory]
*/
protected $_setsFactory;
/**
* @var \Magento\Catalog\Model\ProductFactory
*/
protected $_productFactory;
/**
* @var \Magento\Catalog\Model\Product\Type
*/
protected $_type;
/**
* @var \Magento\Catalog\Model\Product\Attribute\Source\Status
*/
protected $_status;
/**
* @var \Magento\Catalog\Model\Product\Visibility
*/
protected $_visibility;
/**
* @var \Magento\Store\Model\WebsiteFactory
*/
protected $_websiteFactory;
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Backend\Helper\Data $backendHelper
* @param \Magento\Store\Model\WebsiteFactory $websiteFactory
* @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory $setsFactory
* @param \Magento\Catalog\Model\ProductFactory $productFactory
* @param \Magento\Catalog\Model\Product\Type $type
* @param \Magento\Catalog\Model\Product\Attribute\Source\Status $status
* @param \Magento\Catalog\Model\Product\Visibility $visibility
* @param \Magento\Framework\Module\Manager $moduleManager
* @param array $data
*
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Helper\Data $backendHelper,
\Magento\Store\Model\WebsiteFactory $websiteFactory,
\Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory $setsFactory,
\Magento\Catalog\Model\ProductFactory $productFactory,
\Magento\Catalog\Model\Product\Type $type,
\Magento\Catalog\Model\Product\Attribute\Source\Status $status,
\Magento\Catalog\Model\Product\Visibility $visibility,
\Magento\Framework\Module\Manager $moduleManager,
array $data = []
) {
$this->_websiteFactory = $websiteFactory;
$this->_setsFactory = $setsFactory;
$this->_productFactory = $productFactory;
$this->_type = $type;
$this->_status = $status;
$this->_visibility = $visibility;
$this->moduleManager = $moduleManager;
parent::__construct($context, $backendHelper, $data);
}
/**
* @inheritDoc
*/
protected function _construct()
{
parent::_construct();
$this->setId('productGrid');
$this->setDefaultSort('entity_id');
$this->setDefaultDir('DESC');
$this->setSaveParametersInSession(true);
$this->setUseAjax(true);
$this->setVarNameFilter('product_filter');
}
/**
* Get store.
*
* @return Store
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
protected function _getStore()
{
$storeId = (int)$this->getRequest()->getParam('store', 0);
return $this->_storeManager->getStore($storeId);
}
/**
* @inheritDoc
*/
protected function _prepareCollection()
{
$store = $this->_getStore();
$collection = $this->_productFactory->create()->getCollection()->addAttributeToSelect(
'sku'
)->addAttributeToSelect(
'name'
)->addAttributeToSelect(
'attribute_set_id'
)->addAttributeToSelect(
'type_id'
)->setStore(
$store
);
if ($this->moduleManager->isEnabled('Magento_CatalogInventory')) {
$collection->joinField(
'qty',
'cataloginventory_stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
);
}
if ($store->getId()) {
$collection->addStoreFilter($store);
$collection->joinAttribute(
'name',
'catalog_product/name',
'entity_id',
null,
'inner',
Store::DEFAULT_STORE_ID
);
$collection->joinAttribute(
'custom_name',
'catalog_product/name',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute(
'status',
'catalog_product/status',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute(
'visibility',
'catalog_product/visibility',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute('price', 'catalog_product/price', 'entity_id', null, 'left', $store->getId());
} else {
$collection->addAttributeToSelect('price');
$collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
$collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
}
$this->setCollection($collection);
$this->getCollection()->addWebsiteNamesToResult();
parent::_prepareCollection();
return $this;
}
/**
* @inheritDoc
*/
protected function _addColumnFilterToCollection($column)
{
if ($this->getCollection()) {
if ($column->getId() == 'websites') {
$this->getCollection()->joinField(
'websites',
'catalog_product_website',
'website_id',
'product_id=entity_id',
null,
'left'
);
}
}
return parent::_addColumnFilterToCollection($column);
}
/**
* @inheritDoc
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
* @throws \Exception
*/
protected function _prepareColumns()
{
$this->addColumn(
'entity_id',
[
'header' => __('ID'),
'type' => 'number',
'index' => 'entity_id',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'name',
[
'header' => __('Name'),
'index' => 'name',
'class' => 'xxx'
]
);
$store = $this->_getStore();
if ($store->getId()) {
$this->addColumn(
'custom_name',
[
'header' => __('Name in %1', $store->getName()),
'index' => 'custom_name',
'header_css_class' => 'col-name',
'column_css_class' => 'col-name'
]
);
}
$this->addColumn(
'type',
[
'header' => __('Type'),
'index' => 'type_id',
'type' => 'options',
'options' => $this->_type->getOptionArray()
]
);
$sets = $this->_setsFactory->create()->setEntityTypeFilter(
$this->_productFactory->create()->getResource()->getTypeId()
)->load()->toOptionHash();
$this->addColumn(
'set_name',
[
'header' => __('Attribute Set'),
'index' => 'attribute_set_id',
'type' => 'options',
'options' => $sets,
'header_css_class' => 'col-attr-name',
'column_css_class' => 'col-attr-name'
]
);
$this->addColumn(
'sku',
[
'header' => __('SKU'),
'index' => 'sku'
]
);
$store = $this->_getStore();
$this->addColumn(
'price',
[
'header' => __('Price'),
'type' => 'price',
'currency_code' => $store->getBaseCurrency()->getCode(),
'index' => 'price',
'header_css_class' => 'col-price',
'column_css_class' => 'col-price'
]
);
if ($this->moduleManager->isEnabled('Magento_CatalogInventory')) {
$this->addColumn(
'qty',
[
'header' => __('Quantity'),
'type' => 'number',
'index' => 'qty'
]
);
}
$this->addColumn(
'visibility',
[
'header' => __('Visibility'),
'index' => 'visibility',
'type' => 'options',
'options' => $this->_visibility->getOptionArray(),
'header_css_class' => 'col-visibility',
'column_css_class' => 'col-visibility'
]
);
$this->addColumn(
'status',
[
'header' => __('Status'),
'index' => 'status',
'type' => 'options',
'options' => $this->_status->getOptionArray()
]
);
if (!$this->_storeManager->isSingleStoreMode()) {
$this->addColumn(
'websites',
[
'header' => __('Websites'),
'sortable' => false,
'index' => 'websites',
'type' => 'options',
'options' => $this->_websiteFactory->create()->getCollection()->toOptionHash(),
'header_css_class' => 'col-websites',
'column_css_class' => 'col-websites'
]
);
}
$this->addColumn(
'edit',
[
'header' => __('Edit'),
'type' => 'action',
'getter' => 'getId',
'actions' => [
[
'caption' => __('Edit'),
'url' => [
'base' => '*/*/edit',
'params' => ['store' => $this->getRequest()->getParam('store')]
],
'field' => 'id'
]
],
'filter' => false,
'sortable' => false,
'index' => 'stores',
'header_css_class' => 'col-action',
'column_css_class' => 'col-action'
]
);
return parent::_prepareColumns();
}
/**
* @inheritDoc
*/
protected function _prepareMassaction()
{
$this->setMassactionIdField('entity_id');
$this->getMassactionBlock()->setTemplate('Magento_Catalog::product/grid/massaction_extended.phtml');
$this->getMassactionBlock()->setFormFieldName('product');
$this->getMassactionBlock()->addItem(
'delete',
[
'label' => __('Delete'),
'url' => $this->getUrl('catalog/*/massDelete'),
'confirm' => __('Are you sure?')
]
);
$statuses = $this->_status->getOptionArray();
array_unshift($statuses, ['label' => '', 'value' => '']);
$this->getMassactionBlock()->addItem(
'status',
[
'label' => __('Change Status'),
'url' => $this->getUrl('catalog/*/massStatus', ['_current' => true]),
'additional' => [
'visibility' => [
'name' => 'status',
'type' => 'select',
'class' => 'required-entry',
'label' => __('Status'),
'values' => $statuses
]
]
]
);
if ($this->_authorization->isAllowed('Magento_Catalog::update_attributes')) {
$this->getMassactionBlock()->addItem(
'attributes',
[
'label' => __('Update Attributes'),
'url' => $this->getUrl('catalog/product_action_attribute/edit', ['_current' => true])
]
);
}
$this->_eventManager->dispatch('adminhtml_catalog_product_grid_prepare_massaction', ['block' => $this]);
return $this;
}
/**
* @inheritDoc
*/
public function getGridUrl()
{
return $this->getUrl('catalog/*/grid', ['_current' => true]);
}
/**
* @inheritDoc
*/
public function getRowUrl($row)
{
return $this->getUrl(
'catalog/*/edit',
['store' => $this->getRequest()->getParam('store'), 'id' => $row->getId()]
);
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Block\Adminhtml\Product;
use Magento\Store\Model\Store;
/**
* Catalog product grid
*
* @api
* @since 100.0.2
*/
class Grid extends \Magento\Backend\Block\Widget\Grid\Extended
{
/**
* @var \Magento\Framework\Module\Manager
*/
protected $moduleManager;
/**
* @var \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory]
*/
protected $_setsFactory;
/**
* @var \Magento\Catalog\Model\ProductFactory
*/
protected $_productFactory;
/**
* @var \Magento\Catalog\Model\Product\Type
*/
protected $_type;
/**
* @var \Magento\Catalog\Model\Product\Attribute\Source\Status
*/
protected $_status;
/**
* @var \Magento\Catalog\Model\Product\Visibility
*/
protected $_visibility;
/**
* @var \Magento\Store\Model\WebsiteFactory
*/
protected $_websiteFactory;
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Backend\Helper\Data $backendHelper
* @param \Magento\Store\Model\WebsiteFactory $websiteFactory
* @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory $setsFactory
* @param \Magento\Catalog\Model\ProductFactory $productFactory
* @param \Magento\Catalog\Model\Product\Type $type
* @param \Magento\Catalog\Model\Product\Attribute\Source\Status $status
* @param \Magento\Catalog\Model\Product\Visibility $visibility
* @param \Magento\Framework\Module\Manager $moduleManager
* @param array $data
*
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Helper\Data $backendHelper,
\Magento\Store\Model\WebsiteFactory $websiteFactory,
\Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\CollectionFactory $setsFactory,
\Magento\Catalog\Model\ProductFactory $productFactory,
\Magento\Catalog\Model\Product\Type $type,
\Magento\Catalog\Model\Product\Attribute\Source\Status $status,
\Magento\Catalog\Model\Product\Visibility $visibility,
\Magento\Framework\Module\Manager $moduleManager,
array $data = []
) {
$this->_websiteFactory = $websiteFactory;
$this->_setsFactory = $setsFactory;
$this->_productFactory = $productFactory;
$this->_type = $type;
$this->_status = $status;
$this->_visibility = $visibility;
$this->moduleManager = $moduleManager;
parent::__construct($context, $backendHelper, $data);
}
/**
* @inheritDoc
*/
protected function _construct()
{
parent::_construct();
$this->setId('productGrid');
$this->setDefaultSort('entity_id');
$this->setDefaultDir('DESC');
$this->setSaveParametersInSession(true);
$this->setUseAjax(true);
$this->setVarNameFilter('product_filter');
}
/**
* Get store.
*
* @return Store
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
protected function _getStore()
{
$storeId = (int)$this->getRequest()->getParam('store', 0);
return $this->_storeManager->getStore($storeId);
}
/**
* @inheritDoc
*/
protected function _prepareCollection()
{
$store = $this->_getStore();
$collection = $this->_productFactory->create()->getCollection()->addAttributeToSelect(
'sku'
)->addAttributeToSelect(
'name'
)->addAttributeToSelect(
'attribute_set_id'
)->addAttributeToSelect(
'type_id'
)->setStore(
$store
);
if ($this->moduleManager->isEnabled('Magento_CatalogInventory')) {
$collection->joinField(
'qty',
'cataloginventory_stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
);
}
if ($store->getId()) {
$collection->addStoreFilter($store);
$collection->joinAttribute(
'name',
'catalog_product/name',
'entity_id',
null,
'inner',
Store::DEFAULT_STORE_ID
);
$collection->joinAttribute(
'custom_name',
'catalog_product/name',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute(
'status',
'catalog_product/status',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute(
'visibility',
'catalog_product/visibility',
'entity_id',
null,
'inner',
$store->getId()
);
$collection->joinAttribute('price', 'catalog_product/price', 'entity_id', null, 'left', $store->getId());
} else {
$collection->addAttributeToSelect('price');
$collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
$collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
}
$this->setCollection($collection);
$this->getCollection()->addWebsiteNamesToResult();
parent::_prepareCollection();
return $this;
}
/**
* @inheritDoc
*/
protected function _addColumnFilterToCollection($column)
{
if ($this->getCollection()) {
if ($column->getId() == 'websites') {
$this->getCollection()->joinField(
'websites',
'catalog_product_website',
'website_id',
'product_id=entity_id',
null,
'left'
);
}
}
return parent::_addColumnFilterToCollection($column);
}
/**
* @inheritDoc
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
* @throws \Exception
*/
protected function _prepareColumns()
{
$this->addColumn(
'entity_id',
[
'header' => __('ID'),
'type' => 'number',
'index' => 'entity_id',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'name',
[
'header' => __('Name'),
'index' => 'name',
'class' => 'xxx'
]
);
$store = $this->_getStore();
if ($store->getId()) {
$this->addColumn(
'custom_name',
[
'header' => __('Name in %1', $store->getName()),
'index' => 'custom_name',
'header_css_class' => 'col-name',
'column_css_class' => 'col-name'
]
);
}
$this->addColumn(
'type',
[
'header' => __('Type'),
'index' => 'type_id',
'type' => 'options',
'options' => $this->_type->getOptionArray()
]
);
$sets = $this->_setsFactory->create()->setEntityTypeFilter(
$this->_productFactory->create()->getResource()->getTypeId()
)->load()->toOptionHash();
$this->addColumn(
'set_name',
[
'header' => __('Attribute Set'),
'index' => 'attribute_set_id',
'type' => 'options',
'options' => $sets,
'header_css_class' => 'col-attr-name',
'column_css_class' => 'col-attr-name'
]
);
$this->addColumn(
'sku',
[
'header' => __('SKU'),
'index' => 'sku'
]
);
$store = $this->_getStore();
$this->addColumn(
'price',
[
'header' => __('Price'),
'type' => 'price',
'currency_code' => $store->getBaseCurrency()->getCode(),
'index' => 'price',
'header_css_class' => 'col-price',
'column_css_class' => 'col-price'
]
);
if ($this->moduleManager->isEnabled('Magento_CatalogInventory')) {
$this->addColumn(
'qty',
[
'header' => __('Quantity'),
'type' => 'number',
'index' => 'qty'
]
);
}
$this->addColumn(
'visibility',
[
'header' => __('Visibility'),
'index' => 'visibility',
'type' => 'options',
'options' => $this->_visibility->getOptionArray(),
'header_css_class' => 'col-visibility',
'column_css_class' => 'col-visibility'
]
);
$this->addColumn(
'status',
[
'header' => __('Status'),
'index' => 'status',
'type' => 'options',
'options' => $this->_status->getOptionArray()
]
);
if (!$this->_storeManager->isSingleStoreMode()) {
$this->addColumn(
'websites',
[
'header' => __('Websites'),
'sortable' => false,
'index' => 'websites',
'type' => 'options',
'options' => $this->_websiteFactory->create()->getCollection()->toOptionHash(),
'header_css_class' => 'col-websites',
'column_css_class' => 'col-websites'
]
);
}
$this->addColumn(
'edit',
[
'header' => __('Edit'),
'type' => 'action',
'getter' => 'getId',
'actions' => [
[
'caption' => __('Edit'),
'url' => [
'base' => '*/*/edit',
'params' => ['store' => $this->getRequest()->getParam('store')]
],
'field' => 'id'
]
],
'filter' => false,
'sortable' => false,
'index' => 'stores',
'header_css_class' => 'col-action',
'column_css_class' => 'col-action'
]
);
return parent::_prepareColumns();
}
/**
* @inheritDoc
*/
protected function _prepareMassaction()
{
$this->setMassactionIdField('entity_id');
$this->getMassactionBlock()->setTemplate('Magento_Catalog::product/grid/massaction_extended.phtml');
$this->getMassactionBlock()->setFormFieldName('product');
$this->getMassactionBlock()->addItem(
'delete',
[
'label' => __('Delete'),
'url' => $this->getUrl('catalog/*/massDelete'),
'confirm' => __('Are you sure?')
]
);
$statuses = $this->_status->getOptionArray();
array_unshift($statuses, ['label' => '', 'value' => '']);
$this->getMassactionBlock()->addItem(
'status',
[
'label' => __('Change Status'),
'url' => $this->getUrl('catalog/*/massStatus', ['_current' => true]),
'additional' => [
'visibility' => [
'name' => 'status',
'type' => 'select',
'class' => 'required-entry',
'label' => __('Status'),
'values' => $statuses
]
]
]
);
if ($this->_authorization->isAllowed('Magento_Catalog::update_attributes')) {
$this->getMassactionBlock()->addItem(
'attributes',
[
'label' => __('Update Attributes'),
'url' => $this->getUrl('catalog/product_action_attribute/edit', ['_current' => true])
]
);
}
$this->_eventManager->dispatch('adminhtml_catalog_product_grid_prepare_massaction', ['block' => $this]);
return $this;
}
/**
* @inheritDoc
*/
public function getGridUrl()
{
return $this->getUrl('catalog/*/grid', ['_current' => true]);
}
/**
* @inheritDoc
*/
public function getRowUrl($row)
{
return $this->getUrl(
'catalog/*/edit',
['store' => $this->getRequest()->getParam('store'), 'id' => $row->getId()]
);
}
}
Function Calls
None |
Stats
MD5 | a8b6d4717547a2c346022235ab853562 |
Eval Count | 0 |
Decode Time | 130 ms |