Есть несколько разделов на сайте (например, /news/2006/, /news/2007/), в каждый повешен один и тот же компонент с разным значением параметра YEAR, по которому внутри компонента делается уже выборка списка новостей за этот год, и полная версия новости тоже идет с учетом года.
Возникла проблема - как малыми силами сделать нормальные ссылки в поиске. Как я понимаю, поиск при формировании ссылки на элемент инфоблока использует DETAIL_PAGE_URL. Паттерном я его не могу задать (т.к. никак не могу прописать что-то вроде /news/#YEAR/?id=#ID#). Пришла мысля апдейтить это поле (DETAIL_PAGE_URL) "руками" на сохранении инфоблока. Создан скрипт на сохранение инфоблока и там написано что-то такое:
Но такая штука не проходит. Нужны советы - куда двигаться, в каком направлении для решении этой задачи
Возникла проблема - как малыми силами сделать нормальные ссылки в поиске. Как я понимаю, поиск при формировании ссылки на элемент инфоблока использует DETAIL_PAGE_URL. Паттерном я его не могу задать (т.к. никак не могу прописать что-то вроде /news/#YEAR/?id=#ID#). Пришла мысля апдейтить это поле (DETAIL_PAGE_URL) "руками" на сохранении инфоблока. Создан скрипт на сохранение инфоблока и там написано что-то такое:
| Код |
|---|
function BXIBlockAfterSave($arFields)
{
$it = new CIBlockElement;
preg_match('/\d{1,2}\.\d{1,2}\.(\d{4})/', $arFields['ACTIVE_FROM'], $match);
if (isset($match[1]))
{
$it->Update($arFields['ID'], array('DETAIL_PAGE_URL'=>'/news/'. $match[1] .'/?id='. $arFields['ID']) );
}
} |
Но такая штука не проходит. Нужны советы - куда двигаться, в каком направлении для решении этой задачи