1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Cms\Controller\Adminhtml\Wysiwyg\Images;
- use Magento\Framework\App\Action\HttpPostActionInterface;
- use Magento\Framework\App\Filesystem\DirectoryList;
- /**
- * Creates new folder.
- */
- class NewFolder extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images implements HttpPostActionInterface
- {
- /**
- * @var \Magento\Framework\Controller\Result\JsonFactory
- */
- protected $resultJsonFactory;
- /**
- * @var \Magento\Framework\App\Filesystem\DirectoryResolver
- */
- private $directoryResolver;
- /**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Registry $coreRegistry
- * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
- * @param \Magento\Framework\App\Filesystem\DirectoryResolver|null $directoryResolver
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
- \Magento\Framework\App\Filesystem\DirectoryResolver $directoryResolver = null
- ) {
- parent::__construct($context, $coreRegistry);
- $this->resultJsonFactory = $resultJsonFactory;
- $this->directoryResolver = $directoryResolver
- ?: $this->_objectManager->get(\Magento\Framework\App\Filesystem\DirectoryResolver::class);
- }
- /**
- * New folder action.
- *
- * @return \Magento\Framework\Controller\ResultInterface
- * @throws \Magento\Framework\Exception\LocalizedException
- */
- public function execute()
- {
- try {
- $this->_initAction();
- $name = $this->getRequest()->getPost('name');
- $path = $this->getStorage()->getSession()->getCurrentPath();
- if (!$this->directoryResolver->validatePath($path, DirectoryList::MEDIA)) {
- throw new \Magento\Framework\Exception\LocalizedException(
- __('Directory %1 is not under storage root path.', $path)
- );
- }
- $result = $this->getStorage()->createDirectory($name, $path);
- } catch (\Exception $e) {
- $result = ['error' => true, 'message' => $e->getMessage()];
- }
- /** @var \Magento\Framework\Controller\Result\Json $resultJson */
- $resultJson = $this->resultJsonFactory->create();
-
- return $resultJson->setData($result);
- }
- }
|