4
4
* See COPYING.txt for license details.
5
5
*/
6
6
7
- // @codingStandardsIgnoreFile
8
-
9
7
namespace Magento \Widget \Block \Adminhtml \Widget \Instance \Edit \Tab \Main ;
10
8
11
9
use Magento \Framework \Data \Form \Element \AbstractElement ;
10
+ use Magento \Framework \App \ObjectManager ;
11
+ use Magento \Framework \Serialize \Serializer \Json ;
12
+ use Magento \Framework \Data \Form \Element \Renderer \RendererInterface ;
13
+ use Magento \Backend \Block \Template ;
12
14
13
15
/**
14
16
* Widget Instance page groups (predefined layouts group) to display on
15
17
*
16
18
* @method \Magento\Widget\Model\Widget\Instance getWidgetInstance()
17
19
*/
18
- class Layout extends \ Magento \ Backend \ Block \ Template implements \ Magento \ Framework \ Data \ Form \ Element \ Renderer \ RendererInterface
20
+ class Layout extends Template implements RendererInterface
19
21
{
20
22
/**
21
23
* @var AbstractElement|null
@@ -32,17 +34,25 @@ class Layout extends \Magento\Backend\Block\Template implements \Magento\Framewo
32
34
*/
33
35
protected $ _productType ;
34
36
37
+ /**
38
+ * @var Json
39
+ */
40
+ private $ serializer ;
41
+
35
42
/**
36
43
* @param \Magento\Backend\Block\Template\Context $context
37
44
* @param \Magento\Catalog\Model\Product\Type $productType
38
45
* @param array $data
46
+ * @param Json|null $serializer
39
47
*/
40
48
public function __construct (
41
49
\Magento \Backend \Block \Template \Context $ context ,
42
50
\Magento \Catalog \Model \Product \Type $ productType ,
43
- array $ data = []
51
+ array $ data = [],
52
+ Json $ serializer = null
44
53
) {
45
54
$ this ->_productType = $ productType ;
55
+ $ this ->serializer = $ serializer ?: ObjectManager::getInstance ()->get (Json::class);
46
56
parent ::__construct ($ context , $ data );
47
57
}
48
58
@@ -242,7 +252,7 @@ public function getDisplayOnContainers()
242
252
public function getLayoutsChooser ()
243
253
{
244
254
$ chooserBlock = $ this ->getLayout ()->createBlock (
245
- \Magento \Widget \Block \Adminhtml \Widget \Instance \Edit \Chooser \Layout::class
255
+ \Magento \Widget \Block \Adminhtml \Widget \Instance \Edit \Chooser \Layout::class
246
256
)->setName (
247
257
'widget_instance[<%- data.id %>][pages][layout_handle] '
248
258
)->setId (
@@ -268,7 +278,7 @@ public function getLayoutsChooser()
268
278
public function getPageLayoutsPageChooser ()
269
279
{
270
280
$ chooserBlock = $ this ->getLayout ()->createBlock (
271
- \Magento \Widget \Block \Adminhtml \Widget \Instance \Edit \Chooser \DesignAbstraction::class
281
+ \Magento \Widget \Block \Adminhtml \Widget \Instance \Edit \Chooser \DesignAbstraction::class
272
282
)->setName (
273
283
'widget_instance[<%- data.id %>][page_layouts][layout_handle] '
274
284
)->setId (
@@ -335,17 +345,26 @@ public function getPageGroups()
335
345
$ pageGroups = [];
336
346
if ($ widgetInstance ->getPageGroups ()) {
337
347
foreach ($ widgetInstance ->getPageGroups () as $ pageGroup ) {
338
- $ pageGroups [] = [
339
- 'page_id ' => $ pageGroup ['page_id ' ],
340
- 'group ' => $ pageGroup ['page_group ' ],
341
- 'block ' => $ pageGroup ['block_reference ' ],
342
- 'for_value ' => $ pageGroup ['page_for ' ],
343
- 'layout_handle ' => $ pageGroup ['layout_handle ' ],
344
- $ pageGroup ['page_group ' ] . '_entities ' => $ pageGroup ['entities ' ],
345
- 'template ' => $ pageGroup ['page_template ' ],
346
- ];
348
+ $ pageGroups [] = $ this ->serializer ->serialize ($ this ->getPageGroup ($ pageGroup ));
347
349
}
348
350
}
349
351
return $ pageGroups ;
350
352
}
353
+
354
+ /**
355
+ * @param array $pageGroup
356
+ * @return array
357
+ */
358
+ private function getPageGroup (array $ pageGroup )
359
+ {
360
+ return [
361
+ 'page_id ' => $ pageGroup ['page_id ' ],
362
+ 'group ' => $ pageGroup ['page_group ' ],
363
+ 'block ' => $ pageGroup ['block_reference ' ],
364
+ 'for_value ' => $ pageGroup ['page_for ' ],
365
+ 'layout_handle ' => $ pageGroup ['layout_handle ' ],
366
+ $ pageGroup ['page_group ' ] . '_entities ' => $ pageGroup ['entities ' ],
367
+ 'template ' => $ pageGroup ['page_template ' ],
368
+ ];
369
+ }
351
370
}
0 commit comments