Добрый день!
имеется инфоблок с пользовательским свойством TYPE(Тип), нужно чтобы оно отображалось в урл. Т.е. например есть инфоблок Новости, в нем есть типы - экономика, спорт, региональные. URL строится по правилу /content/regional/123
/content/ - папка в которой лежит компонента
regional/ - сам тип новости
123/ id новости
Хочу сделать что-то вроде /#SECTION_ID#/ только /#TYPE#/
много всего перерыл и сделал вот что:
В news.list/component.php
Код |
if(strlen($arParams["FILTER_NAME"])<=0 || !preg_match("/^[A-Za-z_][A-Za-z01-9_]*$/", $arParams["FILTER_NAME"]))
{
$arrFilter = array();
}
else
{
$arrFilter = $GLOBALS[$arParams["FILTER_NAME"]];
if(!is_array($arrFilter))
$arrFilter = array();
}
|
Изменил на:
Код |
if(strlen($arParams["FILTER_NAME"])<=0 || !preg_match("/^[A-Za-z_][A-Za-z01-9_]*$/", $arParams["FILTER_NAME"]))
{
$arrFilter = array(
"TYPE" = $arItem["PROPERTIES"]["TYPE"]["VALUE"],
);
}
else
{
$arrFilter = $GLOBALS[$arParams["FILTER_NAME"]];
if(!is_array($arrFilter))
$arrFilter = array();
}
|
В bitrix\components\test\news\templates\.default\news.php перед вызовом компонента test:news.list добавил:
Код |
GLOBAL $arrFilter = array(
"#TYPE#" = $_REQUEST["TYPE"],
);
|
В urlrewrite.php:
Код |
array(
"CONDITION" => "#^/content/([0-9a-zA-z]+)/([0-9]+)/.*#",
"RULE" => "TYPE=$1&ELEMENT_ID=$2",
"ID" => "test:news",
"PATH" => "/content/index.php",
),
|
Объясните пожалуйста где ошибка? И правильно ли делаю?