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

Проблема с детальной страницей новости

00 голосов
4
Здравствуйте.

Пытаюсь сделать фильтр новостей по годам, для чего комплексную компоненту новостей заменил на news.list и сделал фильтр. Эта часть работает, однако при переходе по DETAIL_PAGE_URL снова получаю содержимое страницы/content/news по адресу /content/news/SECTION_ID/ID

Понимаю, что чего-то не прописал в параметрах вызова, но что - не пойму. Поможите, чем сумеете. :(

Код

<?$APPLICATION->IncludeComponent(
   "bitrix:news.list",
   "yearlist",
   Array(
      "DISPLAY_DATE" => "Y",
      "DISPLAY_NAME" => "Y",
      "DISPLAY_PICTURE" => "N",
      "DISPLAY_PREVIEW_TEXT" => "Y",
      "AJAX_MODE" => "N",
      "IBLOCK_TYPE" => "news",
      "IBLOCK_ID" => $_REQUEST["ID"],
      "NEWS_COUNT" => "99",
      "SORT_BY1" => "ACTIVE_FROM",
      "SORT_ORDER1" => "DESC",
      "SORT_BY2" => "SORT",
      "SORT_ORDER2" => "ASC",
      "FILTER_NAME" => "arrFilter",
      "FIELD_CODE" => "",
      "PROPERTY_CODE" => "",
      "CHECK_DATES" => "Y",
      "DETAIL_URL" => "",
      "PREVIEW_TRUNCATE_LEN" => "",
      "ACTIVE_DATE_FORMAT" => "d.m.Y",
      "DISPLAY_PANEL" => "N",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "N",
      "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
      "ADD_SECTIONS_CHAIN" => "Y",
      "HIDE_LINK_WHEN_NO_DETAIL" => "N",
      "PARENT_SECTION" => "",
      "PARENT_SECTION_CODE" => "",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "3600",
      "CACHE_FILTER" => "N",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "Y",
      "PAGER_TITLE" => "Новости",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => "",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "N",
      "AJAX_OPTION_SHADOW" => "Y",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "AJAX_OPTION_ADDITIONAL" => ""
   ),
false
);?> 
спросил 08 Сен, 13 от Waicon (280 баллов)

4 Ответы

00 голосов
Цитата
Роман Ряшенцев пишет:
"DETAIL_URL" => "",

Если этот параметр пуст, ссылка на страницу детального показа новости формируется из настроек инфоблока. Судя по
Цитата
Роман Ряшенцев пишет:
/content/news/SECTION_ID/ID

она у Вас в инфоблоке настроена как #SITE_DIR#content/news/#SECTION_ID#/#ID#/

Что Вам необходимо:
1. В папке /content/news создайте еще одну страницу, назовите, как хотите. На нее киньте компонент bitrix:news.detail, настройте его на показ новостей из нужного инфоблока
2. Если у Вас в инфоблоке новостей будут разделы, можете оставить шаблон детальной ссылки в инфоблоке без изменений. Если нет - лучше изменить его на #SITE_DIR#content/news/#ID#/
3. В админке (Настройка - Настройки продукта - Обработка адресов) создайте новое правило такого вида:
"CONDITION" => "#^/content/news/([0-9]+)/([0-9]+)/#",
"RULE" => "ELEMENT_ID=$2",
"ID" => "",
"PATH" => "путь к странице с компонентом bitrix:news.detail",
для случая, если у Вас шаблон ссылки #SITE_DIR#content/news/#SECTION_ID#/#ID#/
Если он иной (#SITE_DIR#content/news/#ID#/), правило другое:
"CONDITION" => "#^/content/news/([0-9]+)/#",
"RULE" => "ELEMENT_ID=$1",
"ID" => "",
"PATH" => "путь к странице с компонентом bitrix:news.detail",

Все.
ответил 08 Сен, 13 от Pomnep (13,960 баллов)
00 голосов
Евгений, спасибо за ответ

Цитата
Что Вам необходимо:

1. В папке /content/news создайте еще одну страницу, назовите, как хотите. На нее киньте компонент bitrix:news.detail, настройте его на показ новостей из нужного инфоблока


Не совсем понял, что есть киньте на нее компонент :) Создал файл detail.php в /content/news/ , в нем прописал вызов компоненты news.detail так

Код
<?$APPLICATION->IncludeComponent("demo:news.detail", ".default", Array(
   "IBLOCK_TYPE"   =>   "news",
   "IBLOCK_ID"   =>   "3",
   "ELEMENT_ID"   =>   $_REQUEST["ID"],
   "IBLOCK_URL"   =>   "",
   "CACHE_TYPE"   =>   "A",
   "CACHE_TIME"   =>   "3600",
   "DISPLAY_PANEL"   =>   "N",
   "SET_TITLE"   =>   "Y",
   "ADD_SECTIONS_CHAIN"   =>   "N",
   "DISPLAY_DATE"   =>   "Y",
   "DISPLAY_NAME"   =>   "N",
   "DISPLAY_PICTURE"   =>   "Y"
 )
);?>


Цитата
2. Если у Вас в инфоблоке новостей будут разделы, можете оставить шаблон детальной ссылки в инфоблоке без изменений. Если нет - лучше изменить его на #SITE_DIR#content/news/#ID#/


Разделы есть, оставил без изменений

Цитата
3. В админке (Настройка - Настройки продукта - Обработка адресов) создайте новое правило такого вида:

"CONDITION" => "#^/content/news/([0-9]+)/([0-9]+)/#",
"RULE" => "ELEMENT_ID=$2",
"ID" => "",
"PATH" => "путь к странице с компонентом bitrix:news.detail",

для случая, если у Вас шаблон ссылки #SITE_DIR#content/news/#SECTION_ID#/#ID#/


Настроил, в urlrewrite.php получил

Код
array(
      "CONDITION"   =>   "#^/content/news/([0-9]+)/([0-9]+)/#",
      "RULE"   =>   "ELEMENT_ID=$2",
      "ID"   =>   "",
      "PATH"   =>   "/content/news/detail.php",
);


В RULE ^^^ съелся значок $ и 2

Получаю 'Элемент не найден' :-(
Где я ошибся?
ответил 03 Дек, 13 от Waicon (280 баллов)
00 голосов
Цитата
Роман пишет:
В RULE ^^^ съелся значок $ и 2

Вот и добавьте. В админке, на странице Обработка адресов поправьте. Тогда заработает.
ответил 15 Март, 14 от Pomnep (13,960 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
Код

array(
      "CONDITION"   =>   "#^/content/news/([0-9]+)/([0-9]+)/#",
      "RULE"   =>   "ELEMENT_ID=",
      "ID"   =>   "",
      "PATH"   =>   "/content/news/detail.php",
);


Он съелся тут, на форуме 8) . В правиле есть
Рисунок
ответил 06 Июль, 14 от Waicon (280 баллов)
Ребят, помогите пожалуйста. Переношу новости, не могу настроить чпу отображения новостей. Показывает код 404
Необходим вывод новостей типа " #SITE_DIR#/news/#SECTION_CODE#/#ELEMENT_CODE#.php "
Создал страницу " #SITE_DIR#/news/newsdetail.php "
Добавил в нее компонент " bitrix:news.detail " и настроил ID новости " ={$_REQUEST["ELEMENT_ID"]} "
В правилах обработки адресов указал
Условие " #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$)/# "
Компонент " bitrix:news.detail "
Файл " /news/newsdetail.php "
Правило " ELEMENT_CODE=$2 "

При переходе по ссылке "новость детально" открывается 404.

Подскажите, пожалуйста, на каком этапе совершил ошибку. Спасибо.

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

0 голосов
0 ответов
0 голосов
1 ответ
спросил 15 Ноя, 13 от Misty (440 баллов)
0 голосов
4 ответов
спросил 28 Дек, 13 от Kania (5,180 баллов)