• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/source/selector.php
  • Класс: BitrixLandingSourceSelector
  • Вызов: Selector::prepareConfig
protected function prepareConfig(array $config)
{
	$result = [];
	$config = array_filter($config, [__CLASS__, 'clearFilter']);
	$config = array_intersect_key($config, $this->config);
	if (!empty($config))
	{
		foreach ($config as $field => $value)
		{
			$checked = true;
			switch ($field)
			{
				case 'ID':
					if (is_string($value))
					{
						$value = preg_replace('/[^a-zA-Z0-9_:\[\]]/', '', trim($value));
					}
					$checked = (is_string($value) && $value !== '');
					break;
				case 'SOURCE_EVENT_ID':
					if (is_string($value))
					{
						$value = preg_replace('/[^a-zA-Z0-9]/', '', trim($value));
					}
					$checked = (is_string($value) && $value !== '');
					break;
				case 'RESULT_ACTION_TYPE':
				case 'RESULT_ACTION_NAME':
					if (is_string($value))
					{
						$value = preg_replace('/[^a-zA-Z0-9_]/', '', trim($value));
					}
					$checked = (is_string($value) && $value !== '');
					break;
				case 'SOURCE_PATH':
					if (is_string($value))
					{
						$value = trim($value);
					}
					//TODO: add check relative real path
					$checked = (is_string($value) && $value !== '');
					break;
			}
			if ($checked)
			{
				$result[$field] = $value;
			}
		}
	}

	if (!isset($result['ID']))
	{
		$result['ID'] = preg_replace('/[^a-zA-Z0-9_:\[\]]/', '', get_called_class());
	}

	return $result;
}