jcb-compiler/src/a8d9583a-6ddb-4aac-b0d1-4c2d2d1c8c74/code.power
2024-01-27 09:09:33 +02:00

131 lines
3.9 KiB
Plaintext

/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The Language Class.
*
* @var Language
* @since 3.2.0
*/
protected Language $language;
/**
* The FieldGroupControl Class.
*
* @var FieldGroupControl
* @since 3.2.0
*/
protected FieldGroupControl $fieldgroupcontrol;
/**
* The ConfigFieldsets Class.
*
* @var ConfigFieldsets
* @since 3.2.0
*/
protected ConfigFieldsets $configfieldsets;
/**
* The ExtensionsParams Class.
*
* @var ExtensionsParams
* @since 3.2.0
*/
protected ExtensionsParams $extensionsparams;
/**
* The ConfigFieldsetsCustomfield Class.
*
* @var Customfield
* @since 3.2.0
*/
protected Customfield $customfield;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Language $language The Language Class.
* @param FieldGroupControl $fieldgroupcontrol The FieldGroupControl Class.
* @param ConfigFieldsets $configfieldsets The ConfigFieldsets Class.
* @param ExtensionsParams $extensionsparams The ExtensionsParams Class.
* @param Customfield $customfield The ConfigFieldsetsCustomfield Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Language $language,
FieldGroupControl $fieldgroupcontrol,
ConfigFieldsets $configfieldsets,
ExtensionsParams $extensionsparams,
Customfield $customfield)
{
$this->config = $config;
$this->language = $language;
$this->fieldgroupcontrol = $fieldgroupcontrol;
$this->configfieldsets = $configfieldsets;
$this->extensionsparams = $extensionsparams;
$this->customfield = $customfield;
}
/**
* Set Group Control Config Fieldsets
*
* @param string $lang
*
* @since 1.0
*/
public function set(string $lang): void
{
// start loading Group control params if needed
if ($this->fieldgroupcontrol->isActive())
{
// start building field set for config
$this->configfieldsets->add('component', Indent::_(1) . "<fieldset");
$this->configfieldsets->add('component', Indent::_(2) . 'name="group_config"');
$this->configfieldsets->add('component', Indent::_(2) . 'label="' . $lang
. '_GROUPS_LABEL"');
$this->configfieldsets->add('component', Indent::_(2) . 'description="' . $lang
. '_GROUPS_DESC">');
// setup lang
$this->language->set(
$this->config->lang_target, $lang . '_GROUPS_LABEL', "Target Groups"
);
$this->language->set(
$this->config->lang_target, $lang . '_GROUPS_DESC',
"The Parameters for the targeted groups are set here."
);
$this->language->set(
$this->config->lang_target, $lang . '_TARGET_GROUP_DESC',
"Set the group/s being targeted by this user type."
);
foreach ($this->fieldgroupcontrol->allActive() as $selector => $label)
{
$this->configfieldsets->add('component', Indent::_(2) . '<field name="'
. $selector . '"');
$this->configfieldsets->add('component', Indent::_(3) . 'type="usergroup"');
$this->configfieldsets->add('component', Indent::_(3) . 'label="' . $label . '"');
$this->configfieldsets->add('component', Indent::_(3) . 'description="'
. $lang . '_TARGET_GROUP_DESC"');
$this->configfieldsets->add('component', Indent::_(3) . 'multiple="true"');
$this->configfieldsets->add('component', Indent::_(2) . "/>");
// set params defaults
$this->extensionsparams->add('component', '"' . $selector . '":["2"]');
}
// add custom Target Groups fields
if ($this->customfield->isArray('Target Groups'))
{
$this->configfieldsets->add('component', implode(
"", $this->customfield->get('Target Groups')
));
$this->customfield->remove('Target Groups');
}
// close that fieldse
$this->configfieldsets->add('component', Indent::_(1) . "</fieldset>");
}
}