• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/urlmanager.php
  • Класс: BitrixDiskUrlManager
  • Вызов: UrlManager::buildUrl
protected function buildUrl($rewriteCondition, array $paramsUri)
{
	$replaceNamedPattern = array();
	if(preg_match_all('#((?<([a-zA-Z]+)>(?:.*)))#U', $rewriteCondition, $matches, PREG_SET_ORDER))
	{
		foreach ($matches as $namedPattern)
		{
			//name of subpattern
			if(isset($paramsUri[$namedPattern[2]]))
			{
				$replaceNamedPattern[$namedPattern[1]] = $paramsUri[$namedPattern[2]];
				unset($paramsUri[$namedPattern[2]]);
			}
		}
		unset($namedPattern);

		$replaceNamedPattern['(.*)'] = '';

		$uri = strtr($rewriteCondition, $replaceNamedPattern);

		$patternDelimiter = $uri[0];
		$uri = trim(mb_substr($uri, 1, mb_strrpos($uri, $patternDelimiter) - 1), '^$');

		return strtr($uri, array('?' => '?')) . '&' . http_build_query($paramsUri);
	}

	return '/';
}