Jump to content
Wild

Переход на несуществующий номер страницы

Recommended Posts

К примеру в некой категории 15 страниц товаров.
Если, к примеру, ввести ссылку ?page=17, то получаем страницу без товаров.
Как в этом случае сделать редирект на последнюю (или первую) страницу?

Share this post


Link to post
Share on other sites

в контроллере вам становится известно сколько страниц, там и проверяйте

Share this post


Link to post
Share on other sites

Просто в контроллере сначала строится массив фильтра со стартовой страницей ($page - 1) * $limit и другими параметрами.

потом на его основании получаем список продуктов getProducts

потом получаем их общее количество через getTotalProducts

и только потом уже можем рассчитать реальное количество страниц.

Т.е. при указанной page=999999 по факту мы уже получили ПУСТОЙ массив товаров с учетом фильтра.

Вот сижу и туплю...
Сделать перед основной выборкой товара такой же запрос и на основании его результата выставить $page=1 повторить его уже с этим параметром?
Кривоватый костыль...

Я не перфекционист, но все же может подскажете более красивое решение?

Или я чего-то упустил в логике работы?

Share this post


Link to post
Share on other sites

странно, открыл 2.3

            $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

            $results = $this->model_catalog_product->getProducts($filter_data);



А то что в $filter_data лежит офсет, то для getTotalProducts несущественно.

Даже в вашем случае - лишний запрос не помеха принять  решение

  • +1 1

Share this post


Link to post
Share on other sites

Я тупанул...
getTotalProducts ведь просто получает количество ВСЕХ товаров с учетом фильтра по категориям и выбранному фильтру (простите за тавтологию).
Лимиты, сортировка, порядок и стартовая позиция ей пофигу.

Спасибо.

Но возникла другая проблема...
Сделав $page=1, я получаю корректные данные, но в строке адреса все равно светится ?page=999.
Т.е. фактически мы находимся на странице 999 с данными от 1.
Как грамотно сделать корректный редирект?

Share this post


Link to post
Share on other sites

Или может тупо сделать редирект на 404, как вы думаете?

Share this post


Link to post
Share on other sites

Я бы делал редирект на первую страницу

 

Share this post


Link to post
Share on other sites
1 час назад, Wild сказал:

Или может тупо сделать редирект на 404, как вы думаете? 

правильно ,но при условии что 404 страница нестандартная,а с ссылками на главную, на основные категории сайта или на нужные товары , типа такого:

image.thumb.png.03e4d0e732034675796cf37e69fd1e96.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.