• Модуль: highloadblock
  • Путь к файлу: ~/bitrix/modules/highloadblock/classes/general/cusertypehlblock.php
  • Класс: CUserTypeHlblock
  • Вызов: CUserTypeHlblock::verifySettings
static function verifySettings(array $settings, bool $multiple): array
{
	$defaultSettings = self::getDefaultSettings($multiple);

	$height = (int)($settings['LIST_HEIGHT'] ?? $defaultSettings['LIST_HEIGHT']);
	if ($height < 1)
	{
		$height = $defaultSettings['LIST_HEIGHT'];
	}

	$display = (string)($settings['DISPLAY'] ?? $defaultSettings['DISPLAY']);
	if ($display !== self::DISPLAY_CHECKBOX && $display !== self::DISPLAY_LIST)
	{
		$display = $defaultSettings['DISPLAY'];
	}

	$hlblockId = (int)($settings['HLBLOCK_ID'] ?? $defaultSettings['HLBLOCK_ID']);
	if ($hlblockId < 0)
	{
		$hlblockId = $defaultSettings['HLBLOCK_ID'];
	}

	$hlfieldId = (int)($settings['HLFIELD_ID'] ?? $defaultSettings['HLFIELD_ID']);
	if ($hlfieldId < 0)
	{
		$hlfieldId = $defaultSettings['HLFIELD_ID'];
	}

	$defaultValue = $settings['DEFAULT_VALUE'] ?? $defaultSettings['DEFAULT_VALUE'];
	if ($multiple)
	{
		if (!is_array($defaultValue))
		{
			$defaultValue = [$defaultValue];
		}
		MainTypeCollection::normalizeArrayValuesByInt($defaultValue, true);
	}
	else
	{
		if (!is_int($defaultValue) && !is_string($defaultValue))
		{
			$defaultValue = $defaultSettings['DEFAULT_VALUE'];
		}
		$defaultValue = (int)$defaultValue;
		if ($defaultValue < 0)
		{
			$defaultValue = $defaultSettings['DEFAULT_VALUE'];
		}
	}

	return [
		'DISPLAY' => $display,
		'LIST_HEIGHT' => $height,
		'HLBLOCK_ID' => $hlblockId,
		'HLFIELD_ID' => $hlfieldId,
		'DEFAULT_VALUE' => $defaultValue,
	];
}