• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/component_engine.php
  • Класс: partCComponentEngine
  • Вызов: CComponentEngine::__checkPath4Template
protected function __checkPath4Template($pageTemplate, $currentPageUrl, &$arVariables)
{
	if (!empty($this->greedyParts))
	{
		$pageTemplateReg = preg_replace("'#(?:".implode("|", $this->greedyParts).")#'", "(.+?)", $pageTemplate);
		$pageTemplateReg = preg_replace("'#[^#]+?#'", "([^/]+?)", $pageTemplateReg);
	}
	else
	{
		$pageTemplateReg = preg_replace("'#[^#]+?#'", "([^/]+?)", $pageTemplate);
	}

	if (mb_substr($pageTemplateReg, -1, 1) == "/")
		$pageTemplateReg .= "index\.php";

	$arValues = array();
	if (preg_match("'^".$pageTemplateReg."$'", $currentPageUrl, $arValues))
	{
		$arMatches = array();
		if (preg_match_all("'#([^#]+?)#'", $pageTemplate, $arMatches))
		{
			for ($i = 0, $cnt = count($arMatches[1]); $i < $cnt; $i++)
				$arVariables[$arMatches[1][$i]] = $arValues[$i + 1];
		}
		return true;
	}

	return false;
}