Save.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Review\Controller\Adminhtml\Rating;
  7. use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
  8. use Magento\Review\Controller\Adminhtml\Rating as RatingController;
  9. use Magento\Framework\Controller\ResultFactory;
  10. class Save extends RatingController implements HttpPostActionInterface
  11. {
  12. /**
  13. * Save rating
  14. *
  15. * @return \Magento\Backend\Model\View\Result\Redirect
  16. */
  17. public function execute()
  18. {
  19. $this->initEntityId();
  20. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  21. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  22. if ($this->getRequest()->getPostValue()) {
  23. try {
  24. /** @var \Magento\Review\Model\Rating $ratingModel */
  25. $ratingModel = $this->_objectManager->create(\Magento\Review\Model\Rating::class);
  26. $stores = $this->getRequest()->getParam('stores');
  27. $position = (int)$this->getRequest()->getParam('position');
  28. $stores[] = 0;
  29. $isActive = (bool)$this->getRequest()->getParam('is_active');
  30. $ratingModel->setRatingCode($this->getRequest()->getParam('rating_code'))
  31. ->setRatingCodes($this->getRequest()->getParam('rating_codes'))
  32. ->setStores($stores)
  33. ->setPosition($position)
  34. ->setId($this->getRequest()->getParam('id'))
  35. ->setIsActive($isActive)
  36. ->setEntityId($this->coreRegistry->registry('entityId'))
  37. ->save();
  38. $options = $this->getRequest()->getParam('option_title');
  39. if (is_array($options)) {
  40. $i = 1;
  41. foreach ($options as $key => $optionCode) {
  42. $optionModel = $this->_objectManager->create(\Magento\Review\Model\Rating\Option::class);
  43. if (!preg_match("/^add_([0-9]*?)$/", $key)) {
  44. $optionModel->setId($key);
  45. }
  46. $optionModel->setCode($optionCode)
  47. ->setValue($i)
  48. ->setRatingId($ratingModel->getId())
  49. ->setPosition($i)
  50. ->save();
  51. $i++;
  52. }
  53. }
  54. $this->messageManager->addSuccess(__('You saved the rating.'));
  55. $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setRatingData(false);
  56. } catch (\Exception $e) {
  57. $this->messageManager->addError($e->getMessage());
  58. $this->_objectManager->get(\Magento\Backend\Model\Session::class)
  59. ->setRatingData($this->getRequest()->getPostValue());
  60. $resultRedirect->setPath('review/rating/edit', ['id' => $this->getRequest()->getParam('id')]);
  61. return $resultRedirect;
  62. }
  63. }
  64. $resultRedirect->setPath('review/rating/');
  65. return $resultRedirect;
  66. }
  67. }