• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/helper.php
  • Класс: Bitrix\Sender\Integration\Crm\Connectors\Helper
  • Вызов: Helper::processRuntimeFilter
static function processRuntimeFilter(array &$filter, $entityTypeName = '')
{
	foreach ($filter as $key => $item)
	{
		if (!($item instanceof Connector\Filter\RuntimeFilter))
		{
			continue;
		}

		unset($filter[$key]);
		$filter[$item->getKey()] = $item->getValue();
		if (empty(self::$runtimeByEntity[$entityTypeName]))
		{
			self::$runtimeByEntity[$entityTypeName] = [];
		}
		self::$runtimeByEntity[$entityTypeName] = array_merge(
			self::$runtimeByEntity[$entityTypeName],
			array_map(
				function ($item) use ($entityTypeName)
				{
					$search = $entityTypeName ? $entityTypeName . '_' : '';
					$runtimeName = $entityTypeName ? $entityTypeName . '.' : '';
					$item['expression'] = str_replace(
						$search,
						$runtimeName,
						$item['expression']
					);
					$item['buildFrom'] = array_map(
						function ($from) use ($search, $runtimeName)
						{
							return str_replace($search, $runtimeName, $from);
						},
						$item['buildFrom']
					);
					return $item;
				},
				$item->getRuntime()
			)
		);
	}
}