@po4emu4ka2020

Как в компоненте bitrix «Список заказов» (bitrix.sale.personal.order.list) выводить сразу и активные заказы и заказы, которые уже выполнены?

Добрый день!
Подскажите, пожалуйста, в проблеме.
Компонент bitrix "Список заказов" (bitrix.sale.personal.order.list).

Мне нужно сделать, чтобы вся история заказов пользователя (и активные заказы, и выполненные) была в одном месте, да еще и с подгрузкой заказов через AJAX по нажатию на кнопку, если количество заказов на странице превышает 15 штук.

Так вот, у меня возникло 2 вопроса:

1 - каким образом я могу реализовать вывод сразу и активных заказов и тех, которые уже выполнены?
Дело в том, что компонент смотрит на get параметр ?filter_history и уже от него выводит старые или активные товары. Неужели выход только в том, чтобы удалить условие в коде компонента?

2 - как я могу осуществить вывод заказов с подгрузкой через AJAX по нажатию кнопки? У bitrix даже, вроде, пагинации у этого компонента нет. Как быть?

Буду благодарен за любую помощь, подсказку. Заранее спасибо.
  • Вопрос задан
  • 2150 просмотров
Решения вопроса 1
@po4emu4ka2020 Автор вопроса
Айнур Валиев, Il'ia Kartovitskii, как оказалось, кастомизировать компонент для моей задачи НЕ нужно.

У него уже все зашито: и показ всех заказов сразу, и навигация.
Оставалось только правильно это использовать.

Если кратко, то для вывода сразу всех заказов нужно использовать перед вызовом компонента указания параметра запроса:
$_REQUEST['show_all'] = "Y";

С навигацией тоже все относительно просто. Можно указать шаблон навигации в параметрах вызова, только указывается параметр "NAV_TEMPLATE", а не "PAGER_TEMPLATE", как у других компонентов.

И в самом шаблоне навигация выводится не с помощью объекта $arResult['NAV_RESULT'], а с помощью обычного вывода переменной, содержащей пагинацию echo($arResult['NAV_STRING']);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kartovitskii
@kartovitskii
Fullstack
Если кратко, то кастомизируй компонент, желательно сделать копию компонента в папку local и как ты и написал удаляешь условие в коде компонента.

Как вариант, пагинацию прикручиваешь через ajax запрос и фильтр на стороне бека, в котором указываешь limit и offset, данные полученные ajax'ом выводишь, например, через append в each'e результата запроса, limit и offset каждый запрос пересчитываешь и двигаешь на то кол-во, какое кол-во элементов хочешь отображать по нажатию одной условной кнопки 'Показать еще'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы