Документация для разработчиков
Темная тема

ParseComponentPath

Описание и параметры

mixed
ParseComponentPath(
	string folder404 ,
	array arUrlTemplates ,
	array & arVariables [,
	string requestURL]
);

Метод служит для поддержки ЧПУ режима в комплексных компонентах. Статический метод.

Метод выясняет код шаблона пути комплексного компонента на основании папки, в которой работает компонент, массива шаблонов путей и текущей запрошенной страницы. Кроме того, этот метод восстанавливает те переменные, которые были заданы с помощью пути.

Параметры

ПараметрОписание
folder404 Путь, в котором работает комплексный компонент в режиме ЧПУ. Этот путь передается во входном параметре $arParams["SEF_FOLDER"].
arUrlTemplates Массив шаблонов путей комплексного компонента для режима ЧПУ. Этот массив задается в коде комплексного компонента и может полностью или частично переопределиться с помощью входного параметра $arParams["SEF_URL_TEMPLATES"].
arVariables Переменная, в которой возвращаются восстановленные из запрощенного пути переменные (на основании найденного шаблона пути).
requestURL Запрошенный путь. По умолчанию равен $APPLICATION->GetCurPage(). Необязательный с версии 5.1.8.

Возвращаемое значение

Если шаблон был найден, то возвращается его код, иначе возвращается пустая строка.

Пример

// если массив шаблонов путей имеет вид
$arUrlTemplates = array(
	"list" => "index.php",
	"element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SID=#SECTION_ID#"
);
// входной параметр SEF_FOLDER равен /company/news/
// запрошенный адрес равен /company/news/15/7653.php?SID=28

// то после вызова метода
$arVariables = array();
$page = 
	CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"], 
		$arUrlTemplates, $arVariables);

// в переменной $page будет строка "element"
// (код соответствующего шаблона)
// а массив $arVariables будет иметь вид
$arVariables = array(
	"IBLOCK_ID" => 15,
	"ELEMENT_ID" => 7653
)

Примечание. Путь должен быть без слэша, именно #IBLOCK_ID#/, а не /#IBLOCK_ID#/. Иначе вернет false.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024