Uploader.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Block\Adminhtml\Wysiwyg\Images\Content;
  7. /**
  8. * Uploader block for Wysiwyg Images
  9. *
  10. * @api
  11. * @since 100.0.2
  12. */
  13. class Uploader extends \Magento\Backend\Block\Media\Uploader
  14. {
  15. /**
  16. * @var \Magento\Cms\Model\Wysiwyg\Images\Storage
  17. */
  18. protected $_imagesStorage;
  19. /**
  20. * @param \Magento\Backend\Block\Template\Context $context
  21. * @param \Magento\Framework\File\Size $fileSize
  22. * @param \Magento\Cms\Model\Wysiwyg\Images\Storage $imagesStorage
  23. * @param array $data
  24. */
  25. public function __construct(
  26. \Magento\Backend\Block\Template\Context $context,
  27. \Magento\Framework\File\Size $fileSize,
  28. \Magento\Cms\Model\Wysiwyg\Images\Storage $imagesStorage,
  29. array $data = []
  30. ) {
  31. $this->_imagesStorage = $imagesStorage;
  32. parent::__construct($context, $fileSize, $data);
  33. }
  34. /**
  35. * @return void
  36. */
  37. protected function _construct()
  38. {
  39. parent::_construct();
  40. $type = $this->_getMediaType();
  41. $allowed = $this->_imagesStorage->getAllowedExtensions($type);
  42. $labels = [];
  43. $files = [];
  44. foreach ($allowed as $ext) {
  45. $labels[] = '.' . $ext;
  46. $files[] = '*.' . $ext;
  47. }
  48. $this->getConfig()->setUrl(
  49. $this->_urlBuilder->addSessionParam()->getUrl('cms/*/upload', ['type' => $type])
  50. )->setFileField(
  51. 'image'
  52. )->setFilters(
  53. ['images' => ['label' => __('Images (%1)', implode(', ', $labels)), 'files' => $files]]
  54. );
  55. }
  56. /**
  57. * Return current media type based on request or data
  58. *
  59. * @return string
  60. */
  61. protected function _getMediaType()
  62. {
  63. if ($this->hasData('media_type')) {
  64. return $this->_getData('media_type');
  65. }
  66. return $this->getRequest()->getParam('type');
  67. }
  68. }