Magento Pagination bar Ограничение количества элементов - PullRequest
2 голосов
/ 08 сентября 2011

В magento мне нужно загрузить только 20 лучших товаров из коллекций товаров с панелью разбиения на страницы (панель нумерации должна иметь только 4 страницы, потому что в ней всего 20 позиций - но в моем в случае, если он имеет общую коллекцию продуктов, поскольку панель разбиения на страницы magento принимает весь объект коллекции для создания панели инструментов без свойства limit).

У меня есть следующий код

    $_productCollection = Mage::getResourceModel('reports/product_collection')
          ->addAttributeToSelect('*')
          ->addOrderedQty()
          ->setPageSize($limit)
          ->setPage($p, $limit)     
          ->setOrder('ordered_qty', 'desc');

И это вернуло 20 предметов правильно. Когда я устанавливаю это на панель нумерации следующим способом.

$magento_block = Mage::getSingleton('core/layout');
    $productsHtml  = $magento_block->createBlock('catalog/product_list');
    $productsHtml  ->setTemplate('catalog/product/list.phtml')->setCollection($_productCollection);
    $pager         = $magento_block->createBlock('page/html_pager', 'catalog/product_list')->setCollection($_productCollection);
    $productsHtml->setChild('pager', $pager);

Он берет всю коллекцию товаров вместо 20 предметов для создания панели инструментов. Поэтому я добавил условие where в саму коллекцию product следующим образом.

$_productCollection->getSelect()->where("order_items.qty_ordered  >= 50");

Эта коллекция возвращает товары, которые проданы более чем в 50 количествах. Но то, что я хочу, это ровно 20 пунктов с правильной полосой пагинации.

Как я могу установить Лимит в панели нумерации.

у меня тоже не работает

$magento_block->createBlock('page/html_pager', 'catalog/product_list')->setCollection($_productCollection)->setLimit(20);

Примечание: Загружаю эту коллекцию продукта за пределами версии Magento Enterprise 1.9, а не в шаблоне magento. Может кто-нибудь найти в чем здесь ошибка?

1 Ответ

0 голосов
/ 04 декабря 2011

Я не уверен (мне кажется, он не загружает вашу коллекцию $ _productCollection во второй код), но я думаю, вы забыли загрузить коллекцию.

$model = Mage::getResourceModel('reports/product_collection');
$collection = $model->getCollection();
$collection->AddAttributeToSelect(*);
$collection->AddOrderedQty();
$collection->SetPageSize($limit);
$collection->load();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...