Skip to content

Commit 62c566d

Browse files
committed
Replace Zend_Json in the editable multiselect form element
1 parent e0e9ed0 commit 62c566d

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

lib/internal/Magento/Framework/Data/Form/Element/Editablemultiselect.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,35 @@
1313
*/
1414
namespace Magento\Framework\Data\Form\Element;
1515

16+
use Magento\Framework\Escaper;
17+
1618
class Editablemultiselect extends \Magento\Framework\Data\Form\Element\Multiselect
1719
{
20+
/**
21+
* @var \Magento\Framework\Serialize\Serializer\Json
22+
*/
23+
private $serializer;
24+
25+
/**
26+
* Editablemultiselect constructor.
27+
* @param Factory $factoryElement
28+
* @param CollectionFactory $factoryCollection
29+
* @param Escaper $escaper
30+
* @param array $data
31+
* @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
32+
*/
33+
public function __construct(
34+
Factory $factoryElement,
35+
CollectionFactory $factoryCollection,
36+
Escaper $escaper,
37+
array $data = [],
38+
\Magento\Framework\Serialize\Serializer\Json $serializer = null
39+
) {
40+
parent::__construct($factoryElement, $factoryCollection, $escaper, $data);
41+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
42+
->get(\Magento\Framework\Serialize\Serializer\Json::class);
43+
}
44+
1845
/**
1946
* Name of the default JavaScript class that is used to make multiselect editable
2047
*
@@ -41,7 +68,7 @@ public function getElementHtml()
4168
$elementJsClass = $this->getData('element_js_class');
4269
}
4370

44-
$selectConfigJson = \Zend_Json::encode($selectConfig);
71+
$selectConfigJson = $this->serializer->serialize($selectConfig);
4572
$jsObjectName = $this->getJsObjectName();
4673

4774
// TODO: TaxRateEditableMultiselect should be moved to a static .js module.

0 commit comments

Comments
 (0)