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 licen..
Decoded Output download
<?php
/**
*
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Controller\Adminhtml\Product;
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
use Magento\Catalog\Controller\Adminhtml\Product;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Controller\ResultFactory;
use Magento\Ui\Component\MassAction\Filter;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
use Magento\Catalog\Helper\Product\Edit\Action\Attribute as AttributeHelper;
/**
* Updates status for a batch of products.
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class MassStatus extends \Magento\Catalog\Controller\Adminhtml\Product implements HttpPostActionInterface
{
/**
* @var \Magento\Catalog\Model\Indexer\Product\Price\Processor
*/
protected $_productPriceIndexerProcessor;
/**
* MassActions filter
*
* @var Filter
*/
protected $filter;
/**
* @var CollectionFactory
*/
protected $collectionFactory;
/**
* @var \Magento\Catalog\Model\Product\Action
*/
private $productAction;
/**
* @var AttributeHelper
*/
private $attributeHelper;
/**
* @param \Magento\Backend\App\Action\Context $context
* @param Builder $productBuilder
* @param \Magento\Catalog\Model\Indexer\Product\Price\Processor $productPriceIndexerProcessor
* @param Filter $filter
* @param CollectionFactory $collectionFactory
* @param \Magento\Catalog\Model\Product\Action $productAction
* @param AttributeHelper $attributeHelper
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
Product\Builder $productBuilder,
\Magento\Catalog\Model\Indexer\Product\Price\Processor $productPriceIndexerProcessor,
Filter $filter,
CollectionFactory $collectionFactory,
\Magento\Catalog\Model\Product\Action $productAction = null,
AttributeHelper $attributeHelper = null
) {
$this->filter = $filter;
$this->collectionFactory = $collectionFactory;
$this->_productPriceIndexerProcessor = $productPriceIndexerProcessor;
$this->productAction = $productAction ?: ObjectManager::getInstance()
->get(\Magento\Catalog\Model\Product\Action::class);
$this->attributeHelper = $attributeHelper ?: ObjectManager::getInstance()
->get(AttributeHelper::class);
parent::__construct($context, $productBuilder);
}
/**
* Validate batch of products before theirs status will be set
*
* @param array $productIds
* @param int $status
* @return void
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function _validateMassStatus(array $productIds, $status)
{
if ($status == \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED) {
if (!$this->_objectManager->create(\Magento\Catalog\Model\Product::class)->isProductsHasSku($productIds)) {
throw new \Magento\Framework\Exception\LocalizedException(
__('Please make sure to define SKU values for all processed products.')
);
}
}
}
/**
* Update product(s) status action
*
* @return \Magento\Backend\Model\View\Result\Redirect
*/
public function execute()
{
$collection = $this->filter->getCollection($this->collectionFactory->create());
$productIds = $collection->getAllIds();
$this->attributeHelper->setProductIds($productIds);
$requestStoreId = $storeId = $this->getRequest()->getParam('store', null);
$filterRequest = $this->getRequest()->getParam('filters', null);
$status = (int) $this->getRequest()->getParam('status');
if (null === $storeId && null !== $filterRequest) {
$storeId = (isset($filterRequest['store_id'])) ? (int) $filterRequest['store_id'] : 0;
}
try {
$this->_validateMassStatus($productIds, $status);
$this->productAction->updateAttributes($productIds, ['status' => $status], (int) $storeId);
$this->messageManager->addSuccessMessage(
__('A total of %1 record(s) have been updated.', count($productIds))
);
$this->_productPriceIndexerProcessor->reindexList($productIds);
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->messageManager->addErrorMessage($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addExceptionMessage(
$e,
__('Something went wrong while updating the product(s) status.')
);
}
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
return $resultRedirect->setPath('catalog/*/', ['store' => $requestStoreId]);
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
*
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Controller\Adminhtml\Product;
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
use Magento\Catalog\Controller\Adminhtml\Product;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Controller\ResultFactory;
use Magento\Ui\Component\MassAction\Filter;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
use Magento\Catalog\Helper\Product\Edit\Action\Attribute as AttributeHelper;
/**
* Updates status for a batch of products.
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class MassStatus extends \Magento\Catalog\Controller\Adminhtml\Product implements HttpPostActionInterface
{
/**
* @var \Magento\Catalog\Model\Indexer\Product\Price\Processor
*/
protected $_productPriceIndexerProcessor;
/**
* MassActions filter
*
* @var Filter
*/
protected $filter;
/**
* @var CollectionFactory
*/
protected $collectionFactory;
/**
* @var \Magento\Catalog\Model\Product\Action
*/
private $productAction;
/**
* @var AttributeHelper
*/
private $attributeHelper;
/**
* @param \Magento\Backend\App\Action\Context $context
* @param Builder $productBuilder
* @param \Magento\Catalog\Model\Indexer\Product\Price\Processor $productPriceIndexerProcessor
* @param Filter $filter
* @param CollectionFactory $collectionFactory
* @param \Magento\Catalog\Model\Product\Action $productAction
* @param AttributeHelper $attributeHelper
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
Product\Builder $productBuilder,
\Magento\Catalog\Model\Indexer\Product\Price\Processor $productPriceIndexerProcessor,
Filter $filter,
CollectionFactory $collectionFactory,
\Magento\Catalog\Model\Product\Action $productAction = null,
AttributeHelper $attributeHelper = null
) {
$this->filter = $filter;
$this->collectionFactory = $collectionFactory;
$this->_productPriceIndexerProcessor = $productPriceIndexerProcessor;
$this->productAction = $productAction ?: ObjectManager::getInstance()
->get(\Magento\Catalog\Model\Product\Action::class);
$this->attributeHelper = $attributeHelper ?: ObjectManager::getInstance()
->get(AttributeHelper::class);
parent::__construct($context, $productBuilder);
}
/**
* Validate batch of products before theirs status will be set
*
* @param array $productIds
* @param int $status
* @return void
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function _validateMassStatus(array $productIds, $status)
{
if ($status == \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED) {
if (!$this->_objectManager->create(\Magento\Catalog\Model\Product::class)->isProductsHasSku($productIds)) {
throw new \Magento\Framework\Exception\LocalizedException(
__('Please make sure to define SKU values for all processed products.')
);
}
}
}
/**
* Update product(s) status action
*
* @return \Magento\Backend\Model\View\Result\Redirect
*/
public function execute()
{
$collection = $this->filter->getCollection($this->collectionFactory->create());
$productIds = $collection->getAllIds();
$this->attributeHelper->setProductIds($productIds);
$requestStoreId = $storeId = $this->getRequest()->getParam('store', null);
$filterRequest = $this->getRequest()->getParam('filters', null);
$status = (int) $this->getRequest()->getParam('status');
if (null === $storeId && null !== $filterRequest) {
$storeId = (isset($filterRequest['store_id'])) ? (int) $filterRequest['store_id'] : 0;
}
try {
$this->_validateMassStatus($productIds, $status);
$this->productAction->updateAttributes($productIds, ['status' => $status], (int) $storeId);
$this->messageManager->addSuccessMessage(
__('A total of %1 record(s) have been updated.', count($productIds))
);
$this->_productPriceIndexerProcessor->reindexList($productIds);
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->messageManager->addErrorMessage($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addExceptionMessage(
$e,
__('Something went wrong while updating the product(s) status.')
);
}
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
return $resultRedirect->setPath('catalog/*/', ['store' => $requestStoreId]);
}
}
Function Calls
None |
Stats
MD5 | c6b707cfa1fc621d7d03d556af42e85b |
Eval Count | 0 |
Decode Time | 123 ms |