mixed ParseComponentPath( string folder404 , array arUrlTemplates , array & arVariables [, string requestURL] );
The method supports CNC mode in complex components. Static method.
This method returns code for complex component path based on folder in which the component operates, as well as array of path templates and current requested page. Additionally, this method restores those variables that were created via the path.
|folder404||Path that is used by complex component to operate in CNC mode. This path is passed in the input parameter $arParams["SEF_FOLDER"].|
|arUrlTemplates||Array of path templates of complex component for CNC mode. This array is specified in the code of complex component and can be fully or partially be re-defined via input parameter. $arParams["SEF_URL_TEMPLATES"].|
|arVariables||Variable that returns variables, restored from the requested path (based on the found path template).|
|requestURL||Requested path. By default equals $APPLICATION->GetCurPage(). Optional from version 5.1.8.|
If the template is not found, its code is returned, otherwise empty string is returned.
// if the array of path templates looks as follows $arUrlTemplates = array( "list" => "index.php", "element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SID=#SECTION_ID#" ); // input parameter SEF_FOLDER equals /company/news/ // requested address equals to /company/news/15/7653.php?SID=28 // then after method is called $arVariables = array(); $page = CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"], $arUrlTemplates, $arVariables); // the variable $page will have an "element" string // (corresponding template code) // and array $arVariables will look as follows $arVariables = array( "IBLOCK_ID" => 15, "ELEMENT_ID" => 7653 )
Note Path must be specified without slash, specifically
#IBLOCK_ID#/ and not the
/#IBLOCK_ID#/. Otherwise returns false.