ProductsCollection и пагинация Есть решение

Здравствуйте, вопрос по коллекции товаров, есть код плагина:

public function frontendCategory($category)
	{
		$view = wa()->getView();

		$hash = 'category/'.$category['id'];

		$collection = new shopProductsCollection($hash);

		$products = $collection->getProducts('*', 0, $collection->count());

		$view->assign('products', $products);
	}

Который получает коллекцию товаров и заменяет их на страницах категорий.

Как в этот код добавить постраничную навигацию товаров, например по 30шт? Сейчас выводятся все товары, если не использовать плагин - на страницах категорий работает пагинация.

2 ответа

  • 3
    Eugen Nichikov 9 августа 2017 11:17 # Решение

    Вот эта строчка

    $products = $collection->getProducts('*', 0, $collection->count());

    делает выборку из всех товаров.

    Чтобы было 30 с самого начала, так:

    $products = $collection->getProducts('*', 0, 30);

    Вторая страница

    $products = $collection->getProducts('*', 30, 30);

    Ну и сам метод, который принимает ?page=2 как номер страницы

    public function frontendCategory($category)
    {
    	$view = wa()->getView();
    
    	$hash = 'category/'.$category['id'];
    
    	$collection = new shopProductsCollection($hash);
    	
    	$page = waRequest::get('page', 1);
    	$limit = 30;
    	$offset = ($page-1) * $limit;
    
    	$products = $collection->getProducts('*', $offset, $limit);
    
    	$view->assign('products', $products);
    }

    приправить проверками по вкусу.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите