Добрый вечер!
Имеется меню из разделов ИБ, нужно сделать так что бы если заполнено пользовательское поле у раздела то осуществлялась бы подмена ссылки.
Нашел:
Все конечно работает, но ID тут получается из ссылки самой т.к. не включен режим ЧПУ, по этому тут конечно все просто и работает, а вот как получить ID если у меня ЧПУ включены?
Имеется меню из разделов ИБ, нужно сделать так что бы если заполнено пользовательское поле у раздела то осуществлялась бы подмена ссылки.
Нашел:
| Код |
|---|
<?
//внутри цикла построения меню
$uf_iblock_id = 1; //ID инфоблока
$uf_name = Array("UF_PAGE_LINK"); //пользовательское поле UF_PAGE_LINK
preg_match('/\?ID=([0-9]+)\&?/i', $arItem["LINK"], $matches); //SEF отключен, поэтому спокойно берем SECTION_ID из ссылки по шаблону ID=#SECTION_ID#
$uf_section_id = $matches[1];
if(CModule::IncludeModule("iblock")): //подключаем модуль инфоблок для работы с классом CIBlockSection
$uf_arresult = CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID" => $uf_iblock_id, "ID" => $uf_section_id), false, $uf_name);
if($uf_value = $uf_arresult->GetNext()):
if(strlen($uf_value["UF_PAGE_LINK"]) > 0): //проверяем что поле заполнено
$arItem["LINK"] = $uf_value["UF_PAGE_LINK"]; //подменяем ссылку и используем её в дальнейшем
endif;
endif;
endif;
?>
|