Skip to content

Commit f7be8c8

Browse files
committed
MAGETWO-95532: Unable to upload image from TinyMCE3
1 parent b4c1595 commit f7be8c8

File tree

5 files changed

+101
-3
lines changed

5 files changed

+101
-3
lines changed

app/code/Magento/Cms/Model/Wysiwyg/Config.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ class Config extends \Magento\Framework\DataObject implements ConfigInterface
8989

9090
/**
9191
* @var array
92-
* @deprecated
93-
* @see \Magento\Cms\Model\Wysiwyg\Gallery\DefaultConfigProvider
9492
*/
9593
protected $_windowSize;
9694

@@ -207,6 +205,12 @@ public function getConfig($data = [])
207205

208206
if ($this->_authorization->isAllowed('Magento_Cms::media_gallery')) {
209207
$this->configProvider->processGalleryConfig($config);
208+
$config->addData(
209+
[
210+
'files_browser_window_width' => $this->_windowSize['width'],
211+
'files_browser_window_height' => $this->_windowSize['height'],
212+
]
213+
);
210214
}
211215
if ($config->getData('add_widgets')) {
212216
$this->configProvider->processWidgetConfig($config);
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Tinymce3\Model\Config\Gallery;
9+
10+
/**
11+
* Class Config adds information about required configurations to display media gallery of tinymce3 editor
12+
*
13+
* @deprecated use \Magento\Cms\Model\Wysiwyg\DefaultConfigProvider instead
14+
*/
15+
class Config implements \Magento\Framework\Data\Wysiwyg\ConfigProviderInterface
16+
{
17+
/**
18+
* @var \Magento\Backend\Model\UrlInterface
19+
*/
20+
private $backendUrl;
21+
22+
/**
23+
* @param \Magento\Backend\Model\UrlInterface $backendUrl
24+
*/
25+
public function __construct(
26+
\Magento\Backend\Model\UrlInterface $backendUrl
27+
) {
28+
$this->backendUrl = $backendUrl;
29+
}
30+
31+
/**
32+
* Returns media gallery config
33+
*
34+
* @param \Magento\Framework\DataObject $config
35+
* @return \Magento\Framework\DataObject
36+
*/
37+
public function getConfig(\Magento\Framework\DataObject $config) : \Magento\Framework\DataObject
38+
{
39+
$config->addData(
40+
[
41+
'add_images' => true,
42+
'files_browser_window_url' => $this->backendUrl->getUrl('cms/wysiwyg_images/index'),
43+
]
44+
);
45+
46+
return $config;
47+
}
48+
}

app/code/Magento/Tinymce3/composer.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
"require": {
55
"php": "~7.1.3||~7.2.0",
66
"magento/framework": "*",
7+
"magento/module-backend": "*",
78
"magento/module-ui": "*",
89
"magento/module-variable": "*",
910
"magento/module-widget": "*"
11+
1012
},
1113
"suggest": {
1214
"magento/module-cms": "*"

app/code/Magento/Tinymce3/etc/adminhtml/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<item name="Magento_Tinymce3/tinymce3Adapter" xsi:type="string">Magento\Tinymce3\Model\Config\Widget\Config</item>
2323
</argument>
2424
<argument name="galleryConfigProvider" xsi:type="array">
25-
<item name="Magento_Tinymce3/tinymce3Adapter" xsi:type="string">Magento\Cms\Model\WysiwygDefaultConfig</item>
25+
<item name="Magento_Tinymce3/tinymce3Adapter" xsi:type="string">Magento\Tinymce3\Model\Config\Gallery\Config</item>
2626
</argument>
2727
</arguments>
2828
</type>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
9+
namespace Magento\Tinymce3\Model\Wysiwyg;
10+
11+
use Magento\TestFramework\Helper\Bootstrap;
12+
use Magento\Framework\AuthorizationInterface;
13+
14+
/**
15+
* @magentoAppArea adminhtml
16+
*/
17+
class CompositeConfigProviderTest extends \PHPUnit\Framework\TestCase
18+
{
19+
/**
20+
* Test enabled module is able to modify WYSIWYG config
21+
*
22+
* @return void
23+
*
24+
* @magentoConfigFixture default/cms/wysiwyg/editor Magento_Tinymce3/tinymce3Adapter
25+
*/
26+
public function testTestModuleEnabledModuleIsAbleToModifyConfig()
27+
{
28+
$objectManager = Bootstrap::getObjectManager();
29+
$objectManager->configure([
30+
'preferences' => [
31+
AuthorizationInterface::class => \Magento\Backend\Model\Search\AuthorizationMock::class
32+
]
33+
]);
34+
$compositeConfigProvider = $objectManager->create(\Magento\Cms\Model\Wysiwyg\CompositeConfigProvider::class);
35+
$model = $objectManager->create(
36+
\Magento\Cms\Model\Wysiwyg\Config::class,
37+
['configProvider' => $compositeConfigProvider]
38+
);
39+
$config = $model->getConfig();
40+
$this->assertArrayHasKey('add_images', $config);
41+
$this->assertArrayHasKey('files_browser_window_url', $config);
42+
$this->assertTrue($config['add_images']);
43+
}
44+
}

0 commit comments

Comments
 (0)