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

catalog.section не понимает ЧПУ

00 голосов
6
Использую стандартный catalog.section с включенной опцией "Показывать все элементы, если не указан раздел".

ЧПУ элемента вида /catalog/#SECTION_CODE#/#ID#/ или /catalog/#SECTION_ID#/#ID#/ отказываются работать на странице /catalog/, где не указан раздел.

Адрес элемента DETAIL_PAGE_URL: /catalog/25/ или /catalog/0/25/ соответственно.

Если перейти в раздел, то элементы раздела выводятся с правильными ссылками.

Где я туплю?
спросил 04 Авг, 13 от Plasma50 (360 баллов)

6 Ответы

00 голосов
Код
   $rsElements = CIBlockElement::GetList($arSort, array_merge($arrFilter, $arFilter), false, $arNavParams, $arSelect);
   $rsElements->SetUrlTemplates($arParams["DETAIL_URL"]);
   //if($arParams["BY_LINK"]!=="Y")
   //   $rsElements->SetSectionContext($arResult);


Обнаружил, что если в компоненте закоммнентировать 2 строчки - то все работает.

Если дописать параметр для вызова компонента: "BY_LINK" => "Y", то в разделах будут глюки - выведутся все элементы.

Теперь новый вопрос: зачем этот BY_LINK нужен?
И как можно решить проблему без модификации компонента?
ответил 04 Авг, 13 от Plasma50 (360 баллов)
00 голосов
Сейчас столкнулся с аналогичной проблемой. Артемий, вы пробовали раскопать корень зла? Или забросили это дело, обойдя проблему другим путём?
ответил 04 Окт, 13 от randir (180 баллов)
00 голосов
Цитата
Алексей Майдокин пишет:
Сейчас столкнулся с аналогичной проблемой. Артемий, вы пробовали раскопать корень зла? Или забросили это дело, обойдя проблему другим путём?

Вам какого вида ссылки нужны? Я с утра делала ЧПУшные ссылки на каталог.
ответил 05 Янв, 14 от BeHuk (320 баллов)
00 голосов
Проблему решил модификацией компонента. (там надо было еще доработку сделать для совсем другой задачи) Но это было год назад. С тех пор к проблеме не возвращался. Идея в том, что компонент, как-то странно строит ссылки на элементы из корневого раздела. Может быть в Битриксе уже исправили такое поведение?

Если вам не нужны цены и корзина, используйте обычный news.list или в шаблоне catalog.section стройте адрес, как нужно.
ответил 21 Апр, 14 от Plasma50 (360 баллов)
00 голосов
Сейчас проверил на новом своем сайте. catalog.section правильно строит ссылку для корневого раздела каталога.

Значит компонент работает правильно.

У вас новая версия Битрикса?

Какие пути раздела и элемента вы указали в настройках компонента?
ответил 15 Авг, 14 от Plasma50 (360 баллов)
00 голосов
У меня самая свежая версия. Ссылки такого вида: /catalog/#SECTION_CODE#/#ELEMENT_CODE#/. Компонент используется на главной странице для вывода новинок, горячих предложений и т.п. Нюанс такой, что товары выводятся только из одной секции (назовём её секция "А") и всех её дочерних. И вот тут возникает проблема: в ссылку в качестве #SECTION_CODE# попадает не код конечной секции, в которой непосредственно лежит элемент, а код секции "А".

Так что, либо компонент по прежнему глючит, либо я до конца не понимаю тайну логики его работы.

А проблему я решил, написав свой компонент, заодно и число запросов подсократил :)
ответил 20 Дек, 14 от randir (180 баллов)

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

0 голосов
6 ответов
спросил 09 Фев, 13 от Oggi (520 баллов)
+1 голос
1 ответ
спросил 26 Сен, 16 от loony (540 баллов)
0 голосов
4 ответов
спросил 05 Янв, 14 от CaRen (100 баллов)
0 голосов
3 ответов
0 голосов
1 ответ