View.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Review\Controller\Product;
  7. use Magento\Review\Controller\Product as ProductController;
  8. use Magento\Framework\Controller\ResultFactory;
  9. use Magento\Review\Model\Review;
  10. class View extends ProductController
  11. {
  12. /**
  13. * Load review model with data by passed id.
  14. * Return false if review was not loaded or review is not approved.
  15. *
  16. * @param int $reviewId
  17. * @return bool|Review
  18. */
  19. protected function loadReview($reviewId)
  20. {
  21. if (!$reviewId) {
  22. return false;
  23. }
  24. /** @var \Magento\Review\Model\Review $review */
  25. $review = $this->reviewFactory->create()->load($reviewId);
  26. if (!$review->getId()
  27. || !$review->isApproved()
  28. || !$review->isAvailableOnStore($this->storeManager->getStore())
  29. ) {
  30. return false;
  31. }
  32. $this->coreRegistry->register('current_review', $review);
  33. return $review;
  34. }
  35. /**
  36. * Show details of one review
  37. *
  38. * @return \Magento\Framework\Controller\ResultInterface
  39. */
  40. public function execute()
  41. {
  42. $review = $this->loadReview((int)$this->getRequest()->getParam('id'));
  43. /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
  44. $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
  45. if (!$review) {
  46. $resultForward->forward('noroute');
  47. return $resultForward;
  48. }
  49. $product = $this->loadProduct($review->getEntityPkValue());
  50. if (!$product) {
  51. $resultForward->forward('noroute');
  52. return $resultForward;
  53. }
  54. /** @var \Magento\Framework\View\Result\Page $resultPage */
  55. $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
  56. return $resultPage;
  57. }
  58. }