Sample.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Downloadable\Controller\Download;
  8. use Magento\Downloadable\Helper\Download as DownloadHelper;
  9. use Magento\Framework\App\ResponseInterface;
  10. class Sample extends \Magento\Downloadable\Controller\Download
  11. {
  12. /**
  13. * Download sample action
  14. *
  15. * @return ResponseInterface
  16. * @SuppressWarnings(PHPMD.ExitExpression)
  17. */
  18. public function execute()
  19. {
  20. $sampleId = $this->getRequest()->getParam('sample_id', 0);
  21. /** @var \Magento\Downloadable\Model\Sample $sample */
  22. $sample = $this->_objectManager->create(\Magento\Downloadable\Model\Sample::class)->load($sampleId);
  23. if ($sample->getId()) {
  24. $resource = '';
  25. $resourceType = '';
  26. if ($sample->getSampleType() == DownloadHelper::LINK_TYPE_URL) {
  27. $resource = $sample->getSampleUrl();
  28. $resourceType = DownloadHelper::LINK_TYPE_URL;
  29. } elseif ($sample->getSampleType() == DownloadHelper::LINK_TYPE_FILE) {
  30. /** @var \Magento\Downloadable\Helper\File $helper */
  31. $helper = $this->_objectManager->get(\Magento\Downloadable\Helper\File::class);
  32. $resource = $helper->getFilePath($sample->getBasePath(), $sample->getSampleFile());
  33. $resourceType = DownloadHelper::LINK_TYPE_FILE;
  34. }
  35. try {
  36. $this->_processDownload($resource, $resourceType);
  37. exit(0);
  38. } catch (\Exception $e) {
  39. $this->messageManager->addError(
  40. __('Sorry, there was an error getting requested content. Please contact the store owner.')
  41. );
  42. }
  43. }
  44. return $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl());
  45. }
  46. }