LinkSample.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 LinkSample extends \Magento\Downloadable\Controller\Download
  11. {
  12. /**
  13. * Download link's sample action
  14. *
  15. * @return ResponseInterface
  16. * @SuppressWarnings(PHPMD.ExitExpression)
  17. */
  18. public function execute()
  19. {
  20. $linkId = $this->getRequest()->getParam('link_id', 0);
  21. /** @var \Magento\Downloadable\Model\Link $link */
  22. $link = $this->_objectManager->create(\Magento\Downloadable\Model\Link::class)->load($linkId);
  23. if ($link->getId()) {
  24. $resource = '';
  25. $resourceType = '';
  26. if ($link->getSampleType() == DownloadHelper::LINK_TYPE_URL) {
  27. $resource = $link->getSampleUrl();
  28. $resourceType = DownloadHelper::LINK_TYPE_URL;
  29. } elseif ($link->getSampleType() == DownloadHelper::LINK_TYPE_FILE) {
  30. $resource = $this->_objectManager->get(
  31. \Magento\Downloadable\Helper\File::class
  32. )->getFilePath(
  33. $this->_getLink()->getBaseSamplePath(),
  34. $link->getSampleFile()
  35. );
  36. $resourceType = DownloadHelper::LINK_TYPE_FILE;
  37. }
  38. try {
  39. $this->_processDownload($resource, $resourceType);
  40. exit(0);
  41. } catch (\Exception $e) {
  42. $this->messageManager->addError(
  43. __('Sorry, there was an error getting requested content. Please contact the store owner.')
  44. );
  45. }
  46. }
  47. return $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl());
  48. }
  49. }