admin Опубликовано 19 марта, 2022 Поделиться Опубликовано 19 марта, 2022 В категории Opencart есть пагинация. С помощью нее мы переходим на следующие страницы в каталоге товаров. Но часто многим пагинация не нужна. В категории Opencart есть пагинация. С помощью нее мы переходим на следующие страницы в каталоге товаров. Но часто многим пагинация не нужна, и всем известно что переход на следующие страницы порождает дубли категорий в опенкарте. Есть альтернативный вариант показать пользователю больше товаров не переходя на постраничную навигацию. Этот способ мы назвем подгрузка товаров или же Кнопка показать больше или показать еще 20 товаров, где 20 - это лимит на страницу. В чем преимущества? Более быстрая подгрузка товаров, чем переходя на по страницам Отсутствуют дубли категорий (если убрать пагинацию) Покупатель не покидает товары с первой страницы, очень удобно если надо сравнить товары или вернуть к какому-то повторно. (Смотрите решение - продвинутое добавление в закладки) Как видим преимуществ много. Итак для внедрения этого функционала надо открыть catalog/controller/product/category.php и найти строку $product_total = $this->model_catalog_product->getFoundProducts(); или вместо getFoundProducts будет getTotalProduct(); после этой строки добавить $this->data['ttl'] = $product_total; Таким образом мы из контроллера передаем данные о количестве товара в категории. Далее открываем шаблон категории catalog/view/theme/default/template/product/category.tpl и находим пагинацию. В каждом шаблоне по разному, но смотрите такой код <?php echo $pagination; ?> после, или перед этой строкой вставляем код кнопки подгрузки: (саму пагинацию можно убрать или уставить, как будет удобно) <?php if($ttl > count($products)){ ?> <input type="hidden" value="<?php echo $this->config->get('config_catalog_limit') + count($products); ?>" name="limit" id="pagin_limit"> <?php if(($ttl - count($products)) >= $this->config->get('config_catalog_limit')){ ?> <div class="category_load">Показать еще <?php echo $this->config->get('config_catalog_limit'); ?></div> <?php }else{ ?> <div class="category_load">Показать еще <?php echo $ttl-count($products); ?></div> <?php } ?> <script> $(".category_load").on("click", function(){ product_div = '.products'; lim = $("#pagin_limit").val(); $("." + product_div).load('index.php?route=product/category&path=<?php echo $this->request->get['path']; ?>&limit=' + lim + ' ' + product_div + '>*', function(){ $("#pagin_limit").val(lim); }); }); </script> <?php } ?> Где переменная product_div отвечает за блок в котором находятся товары. Детально расписывать работу функции подгрузки не буду, но она очень простая. При клике на кнопку показать еще у нас идет обработчик с запуском функции загрузки страницы с лимитом как первая + вторая страница и т.п. Если Количество еще не подгруженых фото больше за лимит на странице - отображается в кнопке лимит на странице. Если меньше - в кнопке показывает реально количество товара, которое еще не подгрузилось. Это очень удобно. И на последней странице подгрузки кнопка не будет отображаться т.к. уже все подгружено на страницу и она не нужна. Недостаток такого подхода в том что он не понимает сортировки товаров, лимиты и т.п. фильтрации в категории. Но основа есть и при желании расширить функционал это не составит труда. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Анатолий Петровский Опубликовано 19 сентября, 2022 Поделиться Опубликовано 19 сентября, 2022 подскажите как переделать вывод под опенкарт 3.0 на twig 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Pascha Опубликовано 19 сентября, 2022 Поделиться Опубликовано 19 сентября, 2022 2 часа назад, Анатолий Петровский сказал: подскажите как переделать вывод под опенкарт 3.0 на twig https://weblenti.com/en/service/converter/phptotwig 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.