123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Config edit page
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- namespace Magento\Config\Block\System\Config;
- use \Magento\Framework\App\ObjectManager;
- use \Magento\Framework\Serialize\Serializer\Json;
- /**
- * @api
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @since 100.0.2
- */
- class Edit extends \Magento\Backend\Block\Widget
- {
- const DEFAULT_SECTION_BLOCK = \Magento\Config\Block\System\Config\Form::class;
- /**
- * Form block class name
- *
- * @var string
- */
- protected $_formBlockName;
- /**
- * Block template File
- *
- * @var string
- */
- protected $_template = 'Magento_Config::system/config/edit.phtml';
- /**
- * Configuration structure
- *
- * @var \Magento\Config\Model\Config\Structure
- */
- protected $_configStructure;
- /**
- * @var \Magento\Framework\Serialize\Serializer\Json
- */
- private $jsonSerializer;
- /**
- * @param \Magento\Backend\Block\Template\Context $context
- * @param \Magento\Config\Model\Config\Structure $configStructure
- * @param array $data
- * @param Json|null $jsonSerializer
- */
- public function __construct(
- \Magento\Backend\Block\Template\Context $context,
- \Magento\Config\Model\Config\Structure $configStructure,
- array $data = [],
- Json $jsonSerializer = null
- ) {
- $this->_configStructure = $configStructure;
- $this->jsonSerializer = $jsonSerializer ?: ObjectManager::getInstance()->get(Json::class);
- parent::__construct($context, $data);
- }
- /**
- * Prepare layout object
- *
- * @return \Magento\Framework\View\Element\AbstractBlock
- */
- protected function _prepareLayout()
- {
- /** @var $section \Magento\Config\Model\Config\Structure\Element\Section */
- $section = $this->_configStructure->getElement($this->getRequest()->getParam('section'));
- $this->_formBlockName = $section->getFrontendModel();
- if (empty($this->_formBlockName)) {
- $this->_formBlockName = self::DEFAULT_SECTION_BLOCK;
- }
- $this->setTitle($section->getLabel());
- $this->setHeaderCss($section->getHeaderCss());
- $this->getToolbar()->addChild(
- 'save_button',
- \Magento\Backend\Block\Widget\Button::class,
- [
- 'id' => 'save',
- 'label' => __('Save Config'),
- 'class' => 'save primary',
- 'data_attribute' => [
- 'mage-init' => ['button' => ['event' => 'save', 'target' => '#config-edit-form']],
- ]
- ]
- );
- $block = $this->getLayout()->createBlock($this->_formBlockName);
- $this->setChild('form', $block);
- return parent::_prepareLayout();
- }
- /**
- * Retrieve rendered save buttons
- *
- * @return string
- */
- public function getSaveButtonHtml()
- {
- return $this->getChildHtml('save_button');
- }
- /**
- * Retrieve config save url
- *
- * @return string
- */
- public function getSaveUrl()
- {
- return $this->getUrl('*/system_config/save', ['_current' => true]);
- }
- /**
- * @return string
- * @since 101.1.0
- */
- public function getConfigSearchParamsJson()
- {
- $params = [];
- if ($this->getRequest()->getParam('section')) {
- $params['section'] = $this->getRequest()->getParam('section');
- }
- if ($this->getRequest()->getParam('group')) {
- $params['group'] = $this->getRequest()->getParam('group');
- }
- if ($this->getRequest()->getParam('field')) {
- $params['field'] = $this->getRequest()->getParam('field');
- }
- return $this->jsonSerializer->serialize($params);
- }
- }
|