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

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-2020, «1С-Битрикс», 2020
Наверх