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
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.