Перейти к содержанию
  • В связи с блокировкой банка QIWI оплата через сайт не возможна.
    Для оплаты и получения дополнений просьба писать в личные сообщения
    Admin*у
    После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Кнопка показать еще в категории Opencart


Рекомендуемые сообщения

В категории 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 отвечает за блок в котором находятся товары.

Детально расписывать работу функции подгрузки не буду, но она очень простая. При клике на кнопку показать еще у нас идет обработчик с запуском функции загрузки страницы с лимитом как первая + вторая страница и т.п. Если Количество еще не подгруженых фото больше за лимит на странице - отображается в кнопке лимит на странице. Если меньше - в кнопке показывает реально количество товара, которое еще не подгрузилось. Это очень удобно. И на последней странице подгрузки кнопка не будет отображаться т.к. уже все подгружено на страницу и она не нужна.

Недостаток такого подхода в том что он не понимает сортировки товаров, лимиты и т.п. фильтрации в категории. Но основа есть и при желании расширить функционал это не составит труда.

Ссылка на комментарий
  • 5 месяцев спустя...
2 часа назад, Анатолий Петровский сказал:

подскажите как переделать вывод под опенкарт 3.0 на twig

https://weblenti.com/en/service/converter/phptotwig

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...