BaseValueType#

NAME#

Kernel::System::SysConfig::BaseValueType - Common system configuration value type backend functions.

PUBLIC INTERFACE#

SettingEffectiveValueCheck()#

Check if provided EffectiveValue matches structure defined in XMLContentParsed.

my %Result = $ValueTypeObject->SettingEffectiveValueCheck(
    EffectiveValue => 'open',
    XMLContentParsed => {
        Value => [
            {
                'Item' => [
                    {
                        'Content' => "Scalar value",
                    },
                ],
            },
        ],
    },
);
Result:
$Result = (

EffectiveValue => ‘open’, # Note for common ValueTypes EffectiveValue is not changed. Success => 1, Error => undef,

);

EffectiveValueGet()#

Extracts the effective value from a XML parsed setting.

my $EffectiveValue = $ValueTypeObject->EffectiveValueGet(
    Value => [
        {
            ValueRegex => '',                       # (optional)
            Content    => 'TheEffectiveValue',
            ValueType  => 'AValueType',             # (optional)
            # ...
        }
    ],
);

Returns:

$EffectiveValue = 'TheEffectiveValue';

ModifiedValueGet()#

Returns parsed value with updated content(according to EffectiveValue).

my $ModifiedValue = $ValueTypeObject->ModifiedValueGet(
    'EffectiveValue' => 'Item 1',
    'Value' => [
        {
            'Item' => [
                {
                    'Content' => 'Default value',
                    'ValueType' => 'String',
                },
            ],
        },
    ],
);

Returns:

$ModifiedValue = [
    {
        'Item' => [
            {
                'Content' => 'Item 1',
                'ValueType' => 'String',
            },
        ],
    },
];

SettingRender()#

Extracts the effective value from a XML parsed setting.

my $SettingHTML = $ValueTypeObject->SettingRender(
    Name           => 'SettingName',
    EffectiveValue => 'Product 6',      # (optional)
    DefaultValue   => 'Product 5',      # (optional)
    Class          => 'My class',       # (optional)
    Item           => [                 # (optional) XML parsed item
        {
            'ValueType' => 'String',
            'Content' => 'admin@example.com',
            'ValueRegex' => '',
        },
    ],
    RW => 1,                            # (optional) Allow editing. Default 0.
    IsArray  => 1,                      # (optional) Item is part of the array
    IsHash   => 1,                      # (optional) Item is part of the hash
    IDSuffix => 1,                      # (optional) Suffix will be added to the element ID
    SkipEffectiveValueCheck => 1,       # (optional) If enabled, system will not perform effective value check.
                                        #            Default: 1.
);

Returns:

$SettingHTML = '<div class "Field"...</div>';

AddItem()#

Generate HTML for new array/hash item.

my $HTML = $ValueTypeObject->AddItem(
    Name           => 'SettingName',    (required) Name
    DefaultItem    => {                 (optional) DefaultItem hash, if available
        Item => {
            Content => 'Value',
        },
    },
);

Returns:

$HTML = "<input type='text' id='Setting_ExampleArray'
    value='Value' name='ExampleArray' class='Entry'/>";

ValueAttributeGet()#

Returns attribute name in the parsed XML that contains Value.

my $Result = $ValueTypeObject->ValueAttributeGet();
Result:

$Result = ‘Content’;

DefaultItemAdd()#

Return structure of the DefaultItem in case it’s not inside of Array or Hash.

my $DefaultItem = $ValueTypeObject->DefaultItemAdd();

Returns:

$DefaultItem = undef;
    # or
$DefaultItem = {
    Item => {
        Content => '',
    },
    ValueType => 'VacationDaysOneTime',
};

ForbiddenValueTypes()#

Return array of value types that are not allowed inside this value type.

my @ForbiddenValueTypes = $ValueTypeObject->ForbiddenValueTypes();

Returns:

@ForbiddenValueTypes = (
    'Option',
    # ...
);

AddSettingContent()#

Checks if a div with class ‘SettingContent’ should be added when adding new item to an array/hash in some special cases.

my $AddSettingContent = $ValueTypeObject->AddSettingContent();

Returns:

my $AddSettingContent = 1;