- Модуль: 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;
}