123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Backend\Block\Widget\Grid;
- /**
- * @api
- * @deprecated 100.2.0 in favour of UI component implementation
- * @method string|array getInputNames()
- * @since 100.0.2
- */
- class Serializer extends \Magento\Framework\View\Element\Template
- {
- /**
- * @var \Magento\Framework\Json\EncoderInterface
- */
- protected $_jsonEncoder;
- /**
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\Framework\Json\EncoderInterface $jsonEncoder,
- array $data = []
- ) {
- $this->_jsonEncoder = $jsonEncoder;
- parent::__construct($context, $data);
- }
- /**
- * Preparing global layout
- *
- * @return $this
- */
- protected function _prepareLayout()
- {
- $grid = $this->getGridBlock();
- if (is_string($grid)) {
- $grid = $this->getLayout()->getBlock($grid);
- }
- if ($grid instanceof \Magento\Backend\Block\Widget\Grid) {
- $this->setGridBlock($grid)->setSerializeData($grid->{$this->getCallback()}());
- }
- return parent::_prepareLayout();
- }
- /**
- * Set serializer template
- *
- * @return void
- */
- public function _construct()
- {
- parent::_construct();
- $this->setTemplate('Magento_Backend::widget/grid/serializer.phtml');
- }
- /**
- * Get grid column input names to serialize
- *
- * @param bool $asJSON
- * @return string|array
- */
- public function getColumnInputNames($asJSON = false)
- {
- if ($asJSON) {
- return $this->_jsonEncoder->encode((array)$this->getInputNames());
- }
- return (array)$this->getInputNames();
- }
- /**
- * Get object data as JSON
- *
- * @return string
- */
- public function getDataAsJSON()
- {
- $result = [];
- $inputNames = $this->getInputNames();
- if ($serializeData = $this->getSerializeData()) {
- $result = $serializeData;
- } elseif (!empty($inputNames)) {
- return '{}';
- }
- return $this->_jsonEncoder->encode($result);
- }
- }
|