- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/util.php
- Класс: BitrixTasksUtil
- Вызов: Util::replaceUrlParameters
static function replaceUrlParameters($url, array $paramsToAdd = array(), array $paramsToDelete = array(), array $options = array())
{
// CHTTP::url*Params() functions does not like #placeholders# in url, so a little trick is needed
$found = array();
preg_match_all("/#([a-zA-Z0-9_-]+)#/", $url, $found);
$match = array();
if(is_array($found[1]) && !empty($found[1]))
{
foreach($found[1] as $holder)
{
$match['#'.$holder.'#'] = '__'.$holder.'__';
}
}
if(!empty($match))
{
$url = str_replace(array_keys($match), $match, $url);
}
// to avoid adding duplicates and delete other params
$url = CHTTP::urlDeleteParams($url, array_merge(array_keys($paramsToAdd), $paramsToDelete));
$url = CHTTP::urlAddParams($url, $paramsToAdd, $options);
if(!empty($match))
{
$match = array_flip($match);
$url = str_replace(array_keys($match), $match, $url);
}
return $url;
}