4
4
* Copyright © Magento, Inc. All rights reserved.
5
5
* See COPYING.txt for license details.
6
6
*/
7
+
8
+ declare (strict_types=1 );
9
+
7
10
namespace Magento \Cms \Controller \Adminhtml \Wysiwyg ;
8
11
9
12
use Magento \Backend \App \Action ;
10
13
use Magento \Cms \Model \Template \Filter ;
11
14
use Magento \Cms \Model \Wysiwyg \Config ;
12
15
use Magento \Framework \App \Action \HttpGetActionInterface ;
16
+ use Magento \Framework \Image \Adapter \AdapterInterface ;
17
+ use Magento \Framework \Image \AdapterFactory ;
18
+ use Psr \Log \LoggerInterface ;
19
+ use Magento \Framework \Url \DecoderInterface ;
20
+ use Magento \Framework \Controller \Result \Raw ;
21
+ use Magento \Framework \Controller \Result \RawFactory ;
22
+ use Magento \Backend \App \Action \Context ;
23
+ use Magento \Framework \App \ObjectManager ;
13
24
14
25
/**
15
26
* Process template text for wysiwyg editor.
27
+ *
28
+ * Class Directive
16
29
*/
17
30
class Directive extends Action implements HttpGetActionInterface
18
31
{
@@ -25,58 +38,94 @@ class Directive extends Action implements HttpGetActionInterface
25
38
const ADMIN_RESOURCE = 'Magento_Cms::media_gallery ' ;
26
39
27
40
/**
28
- * @var \Magento\Framework\Url\ DecoderInterface
41
+ * @var DecoderInterface
29
42
*/
30
43
protected $ urlDecoder ;
31
44
32
45
/**
33
- * @var \Magento\Framework\Controller\Result\ RawFactory
46
+ * @var RawFactory
34
47
*/
35
48
protected $ resultRawFactory ;
36
49
37
50
/**
38
- * @param Action\Context $context
39
- * @param \Magento\Framework\Url\DecoderInterface $urlDecoder
40
- * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
51
+ * @var LoggerInterface
52
+ */
53
+ private $ logger ;
54
+
55
+ /**
56
+ * @var AdapterFactory
57
+ */
58
+ private $ adapterFactory ;
59
+
60
+ /**
61
+ * @var Config
62
+ */
63
+ private $ config ;
64
+
65
+ /**
66
+ * @var Filter
67
+ */
68
+ private $ filter ;
69
+
70
+ /**
71
+ * Constructor
72
+ *
73
+ * @param Context $context
74
+ * @param DecoderInterface $urlDecoder
75
+ * @param RawFactory $resultRawFactory
76
+ * @param AdapterFactory|null $adapterFactory
77
+ * @param LoggerInterface|null $logger
78
+ * @param Config|null $config
79
+ * @param Filter|null $filter
41
80
*/
42
81
public function __construct (
43
- Action \Context $ context ,
44
- \Magento \Framework \Url \DecoderInterface $ urlDecoder ,
45
- \Magento \Framework \Controller \Result \RawFactory $ resultRawFactory
82
+ Context $ context ,
83
+ DecoderInterface $ urlDecoder ,
84
+ RawFactory $ resultRawFactory ,
85
+ AdapterFactory $ adapterFactory = null ,
86
+ LoggerInterface $ logger = null ,
87
+ Config $ config = null ,
88
+ Filter $ filter = null
46
89
) {
47
90
parent ::__construct ($ context );
48
91
$ this ->urlDecoder = $ urlDecoder ;
49
92
$ this ->resultRawFactory = $ resultRawFactory ;
93
+ $ this ->adapterFactory = $ adapterFactory ?: ObjectManager::getInstance ()->get (AdapterFactory::class);
94
+ $ this ->logger = $ logger ?: ObjectManager::getInstance ()->get (LoggerInterface::class);
95
+ $ this ->config = $ config ?: ObjectManager::getInstance ()->get (Config::class);
96
+ $ this ->filter = $ filter ?: ObjectManager::getInstance ()->get (Filter::class);
50
97
}
51
98
52
99
/**
53
100
* Template directives callback
54
101
*
55
- * @return \Magento\Framework\Controller\Result\ Raw
102
+ * @return Raw
56
103
*/
57
104
public function execute ()
58
105
{
59
106
$ directive = $ this ->getRequest ()->getParam ('___directive ' );
60
107
$ directive = $ this ->urlDecoder ->decode ($ directive );
61
108
try {
62
109
/** @var Filter $filter */
63
- $ filter = $ this ->_objectManager ->create (Filter::class);
64
- $ imagePath = $ filter ->filter ($ directive );
65
- /** @var \Magento\Framework\Image\Adapter\AdapterInterface $image */
66
- $ image = $ this ->_objectManager ->get (\Magento \Framework \Image \AdapterFactory::class)->create ();
67
- /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
110
+ $ imagePath = $ this ->filter ->filter ($ directive );
111
+ /** @var AdapterInterface $image */
112
+ $ image = $ this ->adapterFactory ->create ();
113
+ /** @var Raw $resultRaw */
68
114
$ resultRaw = $ this ->resultRawFactory ->create ();
69
115
$ image ->open ($ imagePath );
70
116
$ resultRaw ->setHeader ('Content-Type ' , $ image ->getMimeType ());
71
117
$ resultRaw ->setContents ($ image ->getImage ());
72
118
} catch (\Exception $ e ) {
73
119
/** @var Config $config */
74
- $ config = $ this ->_objectManager ->get (Config::class);
75
- $ imagePath = $ config ->getSkinImagePlaceholderPath ();
76
- $ image ->open ($ imagePath );
77
- $ resultRaw ->setHeader ('Content-Type ' , $ image ->getMimeType ());
78
- $ resultRaw ->setContents ($ image ->getImage ());
79
- $ this ->_objectManager ->get (\Psr \Log \LoggerInterface::class)->critical ($ e );
120
+ $ imagePath = $ this ->config ->getSkinImagePlaceholderPath ();
121
+ try {
122
+ $ image ->open ($ imagePath );
123
+ $ resultRaw ->setHeader ('Content-Type ' , $ image ->getMimeType ());
124
+ $ resultRaw ->setContents ($ image ->getImage ());
125
+ $ this ->logger ->warning ($ e );
126
+ } catch (\Exception $ e ) {
127
+ $ this ->logger ->warning ($ e );
128
+ }
80
129
}
81
130
return $ resultRaw ;
82
131
}
0 commit comments