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

ЧПУ и компоненты

00 голосов
5
Прошу помощи.

Вот что написал в тех поддержку:

Цитата

Есть файл /catalog/list.php, в котором используется компонент:
bitrix:catalog.sections.top

На файл /catalog/list.php пользователь попадает через правило urlrewrite

Код
Код
$arUrlRewrite = array( array( "CONDITION" => "#^/catalog/([0-9]+)/{0,1}#", "RULE" => "SECTION_ID=$1", "ID" => "", "PATH" => "/catalog/list.php", ), );


То есть набрав в браузере /catalog/1289/ пользователь видит категории с топом элементов.

При попытке положить товар в корзину браузер переходит по адресу: /catalog/1289/?action=ADD2BASKET&id=11126&SECTION_ID=1289
Товар благополучно добавляется в корзину, но не срабатывает следующий код в компоненте:
Код
Код
LocalRedirect($APPLICATION->GetCurPageParam("", array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])))


То есть не происходит перехода на адрес: /catalog/1289/?SECTION_ID=1289

Если же мы напрямую обратимся к файлу /catalog/list.php и попробуем положить товар в корзину используя ссылку:
/catalog/list.php?action=ADD2BASKET&id=11126&SECTION_ID=1289,
то все прекрасно сработает и перенаправит на /catalog/list.php?SECTION_ID=1289

Подскажите почему не дружат urlrewrite и LocalRedirect()?


Ответили:
Цитата

Простые компоненты не работаю в режиме ЧПУ.
Поэтому, данное решение не будет рассматриваться в рамках нашей техподдержки.


Подскажите как быть? Нужно, чтобы работало ЧПУ и соответственно компонент.
спросил 23 Ноя, 13 от PAV (100 баллов)

5 Ответы

00 голосов
пропишите правила обработки адресов вручную в системе
тогда вы сможете реализовать аналог ЧПУ комплексного компонента

невнимательно посмотрел ваши примеры

так вроде бы дело не в самом LocalRedirect
а в том на какой адрес вы его отправляете?
ответил 14 Янв, 14 от jenia (1,500 баллов)
00 голосов
а до редиректа точно дело доходит?
и какой адрес получается $APPLICATION->GetCurPageParam("", array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])?
логически то все вроде и должно получиться, но что там в реальности?
ответил 02 Май, 14 от jenia (1,500 баллов)
00 голосов
Поддержка ответила, что надо использовать только комплексные компоненты в моем случае.
ответил 27 Авг, 14 от twilly (100 баллов)
00 голосов
amorfis,
покажите, пожалуйста, еще раз правило, без обрамления тегом "код" в форуме (парсер удаляет важные элементы).
ответил 03 Янв, 15 от Delp (7,220 баллов)
00 голосов
Спустя год ситуация не изменилась с проблемой amorfis'a?

Цитата
amorfis пишет:
Простые компоненты не работаю в режиме ЧПУ.
Поэтому, данное решение не будет рассматриваться в рамках нашей техподдержки.
Столкнулся с такой же проблемой. Компонент catalog.element.
ответил 21 Апр, 15 от 4uKcA (100 баллов)

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

0 голосов
3 ответов
спросил 11 Март, 14 от Yrizer (200 баллов)
0 голосов
4 ответов
спросил 17 Сен, 13 от davydov (120 баллов)
0 голосов
2 ответов
спросил 18 Апр, 14 от kakashka1 (340 баллов)
0 голосов
0 ответов
спросил 08 Янв, 14 от XpoHo3aBp (860 баллов)
0 голосов
5 ответов
спросил 02 Дек, 13 от eff (160 баллов)