- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/businessvalue.php
- Класс: BitrixSaleHelpersAdminBusinessValueControl
- Вызов: BusinessValueControl::getProviderInputs
static function getProviderInputs(array $providers, array $personTypes)
{
$personProviderInput = $personProviderValueInput = array();
$onChange = "bizvalChangeValue(this)";
foreach ($personTypes as $personTypeId => $personType)
{
$providerOptions = array();
foreach ($providers as $providerKey => $provider)
{
if (isset($provider['INPUT']) && is_array($provider['INPUT']))
{
$provider['INPUT']['REQUIRED'] = true;
$provider['INPUT']['ONCHANGE'] = $onChange;
$providerOptions[$providerKey] = $provider['NAME'] ?? $providerKey;
$personProviderValueInput[$personTypeId][$providerKey] = $provider['INPUT'];
}
elseif (isset($provider['FIELDS']) && is_array($provider['FIELDS']))
{
$fields = $provider['FIELDS'];
$fieldOptions = array();
// group fields
foreach ($fields as $fieldKey => $field)
{
if (
is_array($field)
&& (empty($field['PERSON_TYPE_ID']) || $field['PERSON_TYPE_ID'] == $personTypeId)
)
{
$group = $field['GROUP'] ?? null; // null is GENERAL
$fieldOptions[$group][$fieldKey] = $field['NAME'] ?? $fieldKey;
}
}
if (count($fieldOptions) == 1)
{
$fieldOptions = reset($fieldOptions);
}
elseif (is_array($provider['FIELDS_GROUPS']))
{
self::sortRenameGroups($fieldOptions, $provider['FIELDS_GROUPS']);
}
if (! empty($fieldOptions))
{
$providerOptions[$providerKey] = $provider['NAME'] ?? $providerKey;
$personProviderValueInput[$personTypeId][$providerKey] = array('TYPE' => 'ENUM', 'OPTIONS' => $fieldOptions, 'ONCHANGE' => $onChange);
}
}
else
{
$providerOptions[$providerKey] = $provider['NAME'] ?? $providerKey;
$personProviderValueInput[$personTypeId][$providerKey] = array('TYPE' => 'STRING', 'SIZE' => 30, 'ONCHANGE' => $onChange);
}
}
$personProviderValueInput[$personTypeId][''] = array('TYPE' => 'STRING', 'SIZE' => 30); // for filter only
if ($providerOptions)
{
$personProviderInput[$personTypeId] = array(
'TYPE' => 'ENUM',
'OPTIONS' => $providerOptions,
'REQUIRED' => true,
'ONCHANGE' => "bizvalChangeProvider(this, '".$personTypeId."')",
);
}
}
return array($personProviderInput, $personProviderValueInput);
}