Usermanager/Application/Controller/Admin/d3_cfg_usermanageritem_requ.php

178 lignes
6.0 KiB
PHP

<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @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();
}
}