2

我不得不对 Magento 中的目录页面 (list.phtml) 进行一些更改,一切都很好,除了“排序依据”名称、位置等......

这是我的代码:

$_productCollection= Mage::getModel('catalog/product')->getCollection()
                     ->addAttributeToSelect('*')
                     ->addStoreFilter()
                     ->setPage(Mage::getBlockSingleton('page/html_pager')->getCurrentPage(), $limit)
                     ->setPageSize( $limit )
                     ->setOrder($this->getCurrentOrder(), $this->getCurrentDirection())
                     ->load();

这里显然有问题,因为在尝试对结果进行排序时没有任何反应,名称,位置等!

显然这条线有问题:

->setOrder($this->getCurrentOrder(), $this->getCurrentDirection())

我也遇到了设置为不单独显示的简单产品正在显示的问题!我也错过了那里的一些东西。

如果有人可以引导我使用正确的函数/语法,那就太好了!

4

1 回答 1

6

我解决了订购问题!

->setOrder(Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentOrder(), Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentDirection())

并且产品设置为不单独显示:

->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds())

所以其他人的完整代码:

if( $this->getMode()!='grid' ) {
    $limit = Mage::getStoreConfig('catalog/frontend/list_per_page'); 
}
else {
    $limit = Mage::getStoreConfig('catalog/frontend/grid_per_page');
}   
  $_productCollection= Mage::getModel('catalog/product')->getCollection()
                        ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
                         ->addAttributeToSelect('sku_base')
                         ->addStoreFilter(Mage::app()->getStore()->getId())
                         ->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds())
                         ->setPage(Mage::getBlockSingleton('page/html_pager')->getCurrentPage(), $limit)
                         ->setPageSize( $limit )
                         ->setOrder(Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentOrder(), Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentDirection())
                         ->load();
于 2012-09-10T08:29:00.793 回答