magento中自定义集合的分页问题

时间:2011-09-03 12:07:44

标签: magento collections

我创建了自定义块以从多个类别中检索产品。我已将此块扩展到核心产品列表块。寻呼机没有进行自定义收集,不知道为什么寻呼不起作用? 我在collection.php中使用这个函数

public function addCategoriesFilter($categories)
    {

    $alias = 'cat_index';
    $categoryCondition = $this->getConnection()->quoteInto(
    $alias.'.product_id=e.entity_id AND '.$alias.'.store_id=? AND ',
    $this->getStoreId()
    );

    $categoryCondition.= $alias.'.category_id IN ('.$categories.')';
    $this->getSelect()->group('e.entity_id');
    $this->getSelect()->joinInner(
    array($alias => $this->getTable('catalog/category_product_index')),
    $categoryCondition,
    array('position'=>'position')
    );

    $this->_categoryIndexJoined = true;
    $this->_joinFields['position'] = array('table'=>$alias, 'field'=>'position' );

    return $this;

}

2 个答案:

答案 0 :(得分:4)

在探索了几个小时并阅读几乎所有论坛以进行自定义集合分页后,我找到了一种显示自定义集合页面分页的方法。

我需要为我的页面显示工具栏,该工具栏将显示具有糖尿病值的产品为是(糖尿病是自定义属性)。

首先我们需要过滤phtml文件中的集合:

$_productCollection = Mage::getModel('catalog/product')->setStoreId($storeId)getCollection()->addAttributeToFilter("diabetic",1);

/* populate toolbar collection with your collection */
$toolbar = Mage::getBlockSingleton('catalog/product_list')->getToolbarBlock();
$toolbar->setCollection($_productCollection);
echo $toolbar->toHtml();

答案 1 :(得分:0)

<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">

<block type="page/html_pager" name="product_list_toolbar_pager" />

这需要添加到您尝试加载产品的xml块中,以便它获取工具栏和寻呼机。

请参阅此链接作为参考。 Products with Pagination