![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/Controller/Adminhtml/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Controller\Adminhtml; use Extmag\Shiplab\Helper\Config; use Magento\Backend\App\Action; use Magento\Backend\App\Action\Context; use Magento\Backend\Model\View\Result\ForwardFactory; use Magento\Backend\Model\View\Result\Page; use Magento\Framework\App\RequestInterface; use Magento\Framework\View\Result\PageFactory; abstract class Configuration extends Action { /** * @var ForwardFactory */ protected $resultForwardFactory; /** * @var PageFactory */ protected $resultPageFactory; protected $_configStructure; /** * @param Context $context * @param ForwardFactory $resultForwardFactory * @param PageFactory $resultPageFactory * @param Config $configStructure */ public function __construct( Context $context, ForwardFactory $resultForwardFactory, PageFactory $resultPageFactory, Config $configStructure ) { parent::__construct($context); $this->resultForwardFactory = $resultForwardFactory; $this->resultPageFactory = $resultPageFactory; $this->_configStructure = $configStructure; } public function dispatch(RequestInterface $request) { if (!$request->getParam('section')) { try { $request->setParam('section', $this->_configStructure->getFirstSection()->getId()); } catch (LocalizedException $e) { /** If visible section not found need to show only config index page without sections if it allow. */ $this->messageManager->addWarningMessage($e->getMessage()); } } return parent::dispatch($request); } /** * @return Page */ protected function initPage() { /** @var Page $resultPage */ $resultPage = $this->resultPageFactory->create(); $resultPage->setActiveMenu('Extmag_Shiplab::shiplab_configuration') ->addBreadcrumb(__('Extmag'), __('Extmag')) ->addBreadcrumb(__('Configuration'), __('Configuration')); return $resultPage; } /** * @param $configState * @return bool */ protected function _saveState($configState = []) { if (is_array($configState)) { $configState = $this->sanitizeConfigState($configState); $adminUser = $this->_auth->getUser(); $extra = $adminUser->getExtra(); if (!is_array($extra)) { $extra = []; } if (!isset($extra['configState'])) { $extra['configState'] = []; } foreach ($configState as $fieldset => $state) { $extra['configState'][$fieldset] = $state; } $adminUser->saveExtra($extra); } return true; } /** * @param $configState * @return mixed */ protected function sanitizeConfigState($configState) { $sectionList = $this->_configStructure->getSectionList(); $sanitizedConfigState = $configState; foreach ($configState as $sectionId => $value) { if (isset($sectionList[$sectionId])) { $sanitizedConfigState[$sectionId] = (bool)$sanitizedConfigState[$sectionId] ? '1' : '0'; } else { unset($sanitizedConfigState[$sectionId]); } } return $sanitizedConfigState; } }