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