Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Установка своего DETAIL_PAGE_URL

00 голосов
2
Есть несколько разделов на сайте (например, /news/2006/, /news/2007/), в каждый повешен один и тот же компонент с разным значением параметра YEAR, по которому внутри компонента делается уже выборка списка новостей за этот год, и полная версия новости тоже идет с учетом года.
Возникла проблема - как малыми силами сделать нормальные ссылки в поиске. Как я понимаю, поиск при формировании ссылки на элемент инфоблока использует 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']) );
  }
}

Но такая штука не проходит. Нужны советы - куда двигаться, в каком направлении для решении этой задачи
спросил 28 Окт, 13 от TRIAL (180 баллов)

2 Ответы

00 голосов
Альтернативный вариант:
1.создать раздел /news/
2. разместить на нем комплексный элемент КАТАЛОГ.
3. в настройках указать путь до элемента детально: #SECTION_CODE#/#ELEMENT_ID#
4. в ИБ сделать папки-разделы с именами-годами и кодом = году.

ЗЫ. насколько помница - поиск строит путь до элементов на основе путей описанных в настройках ИБ.
Может не стоит так извращатся с поиском а попытаться в настройках указать верные пути.
ответил 28 Ноя, 13 от Grimmi (2,560 баллов)
00 голосов
Может событие BeforeIndex http://dev.1c-bitrix.ru/api_help/search/events/beforeindex.php поможет сформировать правильную ссылку на элемент для модуля поиска?
ответил 09 Март, 14 от sickmind (4,660 баллов)

Похожие вопросы

0 голосов
6 ответов
спросил 11 Сен, 13 от Alita (120 баллов)
0 голосов
1 ответ
спросил 18 Май, 13 от Volk123 (200 баллов)
0 голосов
2 ответов
спросил 20 Апр, 14 от Antitelo (200 баллов)
0 голосов
3 ответов
спросил 06 Фев, 14 от Casey (100 баллов)
0 голосов
7 ответов
спросил 17 Июль, 13 от lik (160 баллов)