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