_imagesStorage = $imagesStorage; parent::__construct($context, $fileSize, $data); } /** * @return void */ protected function _construct() { parent::_construct(); $type = $this->_getMediaType(); $allowed = $this->_imagesStorage->getAllowedExtensions($type); $labels = []; $files = []; foreach ($allowed as $ext) { $labels[] = '.' . $ext; $files[] = '*.' . $ext; } $this->getConfig()->setUrl( $this->_urlBuilder->addSessionParam()->getUrl('cms/*/upload', ['type' => $type]) )->setFileField( 'image' )->setFilters( ['images' => ['label' => __('Images (%1)', implode(', ', $labels)), 'files' => $files]] ); } /** * Return current media type based on request or data * * @return string */ protected function _getMediaType() { if ($this->hasData('media_type')) { return $this->_getData('media_type'); } return $this->getRequest()->getParam('type'); } }