123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Wishlist\Controller\Index;
- use Magento\Framework\App\Action;
- use Magento\Framework\Exception\NotFoundException;
- use Magento\Framework\Controller\ResultFactory;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class Configure extends \Magento\Wishlist\Controller\AbstractIndex
- {
- /**
- * Core registry
- *
- * @var \Magento\Framework\Registry
- */
- protected $_coreRegistry;
- /**
- * @var \Magento\Wishlist\Controller\WishlistProviderInterface
- */
- protected $wishlistProvider;
- /**
- * @var \Magento\Framework\View\Result\PageFactory
- */
- protected $resultPageFactory;
- /**
- * @param Action\Context $context
- * @param \Magento\Wishlist\Controller\WishlistProviderInterface $wishlistProvider
- * @param \Magento\Framework\Registry $coreRegistry
- * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
- */
- public function __construct(
- Action\Context $context,
- \Magento\Wishlist\Controller\WishlistProviderInterface $wishlistProvider,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Framework\View\Result\PageFactory $resultPageFactory
- ) {
- $this->wishlistProvider = $wishlistProvider;
- $this->_coreRegistry = $coreRegistry;
- $this->resultPageFactory = $resultPageFactory;
- parent::__construct($context);
- }
- /**
- * Action to reconfigure wishlist item
- *
- * @return \Magento\Framework\Controller\ResultInterface
- * @throws NotFoundException
- */
- public function execute()
- {
- $id = (int)$this->getRequest()->getParam('id');
- /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
- try {
- /* @var $item \Magento\Wishlist\Model\Item */
- $item = $this->_objectManager->create(\Magento\Wishlist\Model\Item::class);
- $item->loadWithOptions($id);
- if (!$item->getId()) {
- throw new \Magento\Framework\Exception\LocalizedException(
- __("The Wish List item can't load at this time. Please try again later.")
- );
- }
- $wishlist = $this->wishlistProvider->getWishlist($item->getWishlistId());
- if (!$wishlist) {
- throw new NotFoundException(__('Page not found.'));
- }
- $this->_coreRegistry->register('wishlist_item', $item);
- $params = new \Magento\Framework\DataObject();
- $params->setCategoryId(false);
- $params->setConfigureMode(true);
- $buyRequest = $item->getBuyRequest();
- if (!$buyRequest->getQty() && $item->getQty()) {
- $buyRequest->setQty($item->getQty());
- }
- if ($buyRequest->getQty() && !$item->getQty()) {
- $item->setQty($buyRequest->getQty());
- $this->_objectManager->get(\Magento\Wishlist\Helper\Data::class)->calculate();
- }
- $params->setBuyRequest($buyRequest);
- /** @var \Magento\Framework\View\Result\Page $resultPage */
- $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
- $this->_objectManager->get(
- \Magento\Catalog\Helper\Product\View::class
- )->prepareAndRender(
- $resultPage,
- $item->getProductId(),
- $this,
- $params
- );
- return $resultPage;
- } catch (\Magento\Framework\Exception\LocalizedException $e) {
- $this->messageManager->addError($e->getMessage());
- $resultRedirect->setPath('*');
- return $resultRedirect;
- } catch (\Exception $e) {
- $this->messageManager->addError(__('We can\'t configure the product right now.'));
- $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
- $resultRedirect->setPath('*');
- return $resultRedirect;
- }
- }
- }
|