From f1c17d87c79a4d97c53ddfdc5925b79165eff894 Mon Sep 17 00:00:00 2001 From: dmanners Date: Fri, 21 Apr 2017 14:27:16 +0000 Subject: [PATCH 1/2] Explace the direct usage of Zend_Json with a call to the Json Help class --- .../Widget/view/adminhtml/templates/instance/edit/layout.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml index 8482e948a7580..e070fa19c4113 100644 --- a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml +++ b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml @@ -487,7 +487,7 @@ window.WidgetInstance = WidgetInstance; jQuery(function(){ getPageGroups() as $pageGroup): ?> - WidgetInstance.addPageGroup(); + WidgetInstance.addPageGroup(helper('Magento\Framework\Json\Helper\Data')->jsonEncode($pageGroup) ?>); Event.observe(document, 'product:changed', function(event){ WidgetInstance.checkProduct(event); From b78fab0e2fc94bfe6f0fcc8083cf02eec7b7bdc1 Mon Sep 17 00:00:00 2001 From: dmanners Date: Mon, 24 Apr 2017 10:02:31 +0000 Subject: [PATCH 2/2] Update the getPageGroups method to return an array of serialized data --- .../Widget/Instance/Edit/Tab/Main/Layout.php | 37 ++++++++++++++----- .../templates/instance/edit/layout.phtml | 2 +- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Main/Layout.php b/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Main/Layout.php index 83efbfa550e4d..0e79127cd1418 100644 --- a/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Main/Layout.php +++ b/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Main/Layout.php @@ -32,17 +32,25 @@ class Layout extends \Magento\Backend\Block\Template implements \Magento\Framewo */ protected $_productType; + /** + * @var \Magento\Framework\Serialize\Serializer\Json + */ + private $serializer; + /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Catalog\Model\Product\Type $productType * @param array $data + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Catalog\Model\Product\Type $productType, - array $data = [] + array $data = [], + \Magento\Framework\Serialize\Serializer\Json $serializer = null ) { $this->_productType = $productType; + $this->serializer = $serializer; parent::__construct($context, $data); } @@ -335,17 +343,26 @@ public function getPageGroups() $pageGroups = []; if ($widgetInstance->getPageGroups()) { foreach ($widgetInstance->getPageGroups() as $pageGroup) { - $pageGroups[] = [ - 'page_id' => $pageGroup['page_id'], - 'group' => $pageGroup['page_group'], - 'block' => $pageGroup['block_reference'], - 'for_value' => $pageGroup['page_for'], - 'layout_handle' => $pageGroup['layout_handle'], - $pageGroup['page_group'] . '_entities' => $pageGroup['entities'], - 'template' => $pageGroup['page_template'], - ]; + $pageGroups[] = $this->serializer->serialize($this->getPageGroup($pageGroup)); } } return $pageGroups; } + + /** + * @param array $pageGroup + * @return array + */ + private function getPageGroup(array $pageGroup) + { + return [ + 'page_id' => $pageGroup['page_id'], + 'group' => $pageGroup['page_group'], + 'block' => $pageGroup['block_reference'], + 'for_value' => $pageGroup['page_for'], + 'layout_handle' => $pageGroup['layout_handle'], + $pageGroup['page_group'] . '_entities' => $pageGroup['entities'], + 'template' => $pageGroup['page_template'], + ]; + } } diff --git a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml index e070fa19c4113..c2c6600129421 100644 --- a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml +++ b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml @@ -487,7 +487,7 @@ window.WidgetInstance = WidgetInstance; jQuery(function(){ getPageGroups() as $pageGroup): ?> - WidgetInstance.addPageGroup(helper('Magento\Framework\Json\Helper\Data')->jsonEncode($pageGroup) ?>); + WidgetInstance.addPageGroup(); Event.observe(document, 'product:changed', function(event){ WidgetInstance.checkProduct(event);