* @link https://www.oxidmodule.com */ declare(strict_types=1); namespace D3\Usermanager\Application\Controller\Admin; use D3\Usermanager\Application\Model\Constants; use D3\Usermanager\Application\Model\d3usermanager as Manager; use D3\Usermanager\Application\Model\d3usermanagerlist as ManagerList; use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait; use D3\Usermanager\Application\Model\Exceptions\d3usermanager_requirementException; use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirement_interface as RequirementModelInterface; use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementgrouplist as RequirementGroupListModel; use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementlist as RequirementListModel; use OxidEsales\Eshop\Application\Model\DeliveryList; use OxidEsales\Eshop\Application\Model\PaymentList; use OxidEsales\Eshop\Application\Model\CountryList; use OxidEsales\Eshop\Core\Config; use OxidEsales\Eshop\Core\Language; use OxidEsales\Eshop\Core\Model\ListModel; class d3_cfg_usermanageritem_requ extends d3_cfg_usermanageritem_settings { use VariablesTrait; protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_requ'; protected $_aTransStatus = ['OK', 'ERROR', 'NOT_OK']; protected $_sMenuSubItemTitle = 'd3mxusermanager_items'; public function save(): void { // @codeCoverageIgnoreStart if (!defined('OXID_PHP_UNIT')) { parent::save(); } // @codeCoverageIgnoreEnd $aMissingRequiredValues = []; /** @var RequirementModelInterface $oRequirement */ foreach ($this->getRequirementList() as $sId => $oRequirement) { if ($this->getProfile()->getValue($oRequirement->getActiveSwitchParameter())) { try { $oRequirement->throwUnvalidConfigurationException(); } catch (d3usermanager_requirementException $e) { unset($e); $aMissingRequiredValues[] = $sId; } } } if ($aMissingRequiredValues !== []) { $this->addTplParam('missingRequValuesActions', $aMissingRequiredValues); } } public function d3GetConfig(): Config { /** @var Config $config */ $config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class); return $config; } public function getPaymentList(): ListModel { /** @var PaymentList $oPaymentList */ $oPaymentList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.PaymentList::class); return $this->_getObjectList($oPaymentList, null, 'oxdesc ASC'); } public function getDeliveryList(): ListModel { /** @var DeliveryList $oDeliveryList */ $oDeliveryList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.DeliveryList::class); return $this->_getObjectList($oDeliveryList, null, 'oxtitle ASC'); } public function getCountryList(): ListModel { /** @var CountryList $oCountryList */ $oCountryList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.CountryList::class); return $this->_getObjectList($oCountryList, null, 'oxtitle ASC'); } public function getJobList(): ManagerList { $sCurrentId = $this->getViewDataElement('edit')->getId(); /** @var $oManagerList ManagerList */ $oManagerList = d3GetOxidDIC()->get(ManagerList::class); $oManagerList->setCustomSorting('oxsort ASC'); $oManagerList->getList(); $oManagerList->offsetUnset($sCurrentId); return $oManagerList; } public function getLanguageList(): array { $oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class); return $oLang->getLanguageArray(); } public function getTransStatusList(): array { return $this->_aTransStatus; } /** * Sets default values for empty article (currently does nothing), returns * array with parameters. * * @param array $aParams Parameters, to set default values */ public function addDefaultValues($aParams): array { return $aParams; } public function getRequirementGroupList(Manager $oManager): RequirementGroupListModel { d3GetOxidDIC()->set( RequirementGroupListModel::class.'.args.usermanager', $oManager ); /** @var RequirementGroupListModel $requGroupModel */ $requGroupModel = d3GetOxidDIC()->get(RequirementGroupListModel::class); return $requGroupModel; } public function getRequirementListObject(Manager $oManager): RequirementListModel { d3GetOxidDIC()->set( RequirementListModel::class.'.args.usermanager', $oManager ); /** @var RequirementListModel $requListModel */ $requListModel = d3GetOxidDIC()->get(RequirementListModel::class); return $requListModel; } public function getGroupedRequirementList(): array { /** @var Manager $oManager */ $oManager = $this->getProfile(); $oRequList = $this->getRequirementGroupList($oManager); $oRequList->setGroups($oManager->getConfiguration()->getGroupedRequirementIdList()); return $oRequList->getGroupList(); } public function getRequirementList(): array { /** @var Manager $oManager */ $oManager = $this->getProfile(); $oRequList = $this->getRequirementListObject($oManager); $oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList()); return $oRequList->getRequirementList(); } }