Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento:自定义集合中缺少分页_Magento_Magento 1.7 - Fatal编程技术网

Magento:自定义集合中缺少分页

Magento:自定义集合中缺少分页,magento,magento-1.7,Magento,Magento 1.7,我在显示自定义产品集合时遇到分页问题。由于我是马根托的新手,请容忍我的理解中的任何幼稚 目标:我想在产品视图页面上显示来自同一类别的其他产品,并利用我正在使用的无限滚动扩展。因此,用户将在产品页面加载上显示(比如)5个产品,但当用户向下滚动时,将加载并显示下一页的5个产品。这个扩展在我的分类列表页面上运行良好 问题:我可以通过下面的代码在产品页面上显示产品,无限滚动看起来也处于活动状态,但分页不起作用。集合中的所有产品都是一次性加载的,因此当用户向下滚动时,第2页上的无限滚动显示第一页产品的重复

我在显示自定义产品集合时遇到分页问题。由于我是马根托的新手,请容忍我的理解中的任何幼稚

目标:我想在产品视图页面上显示来自同一类别的其他产品,并利用我正在使用的无限滚动扩展。因此,用户将在产品页面加载上显示(比如)5个产品,但当用户向下滚动时,将加载并显示下一页的5个产品。这个扩展在我的分类列表页面上运行良好

问题:我可以通过下面的代码在产品页面上显示产品,无限滚动看起来也处于活动状态,但分页不起作用。集合中的所有产品都是一次性加载的,因此当用户向下滚动时,第2页上的无限滚动显示第一页产品的重复列表

如果有人能帮我解决这个问题,我将不胜感激

以下是我写的: /app/code/local/Mage/Catalog/Block/Product/OtherProducts.php

<?php

class Mage_Catalog_Block_Product_OtherProducts extends Mage_Catalog_Block_Product_List
{
   protected function _getProductCollection()
   {
      $aCategoryId = $this->getProduct()->getCategoryIds();
        if (!$aCategoryId) {
            echo "This product is not assigned to any categories.";
        }
        $iCategoryId = $aCategoryId[0];
        $oCategory = Mage::getModel('catalog/category')->load($iCategoryId);
        $oProductCollection = $oCategory
            ->getProductCollection()
            ->addCategoryFilter($oCategory)
            ->addAttributeToSelect('*')
            ->addFieldToFilter('entity_id', array('neq' => $this->getProduct()->getId()));


        return $oProductCollection;

   }
}
?>

/app/design/frontend/default//layout/catalog.xml,就在产品视图页面的xml之后

<reference name="content">
                   <block type="catalog/product_OtherProducts" name="product_OtherProducts" template="catalog/product/otherslist.phtml">
                      <action method="setColumnCount"><columns>5</columns></action>
                      <action method="setProductsCount"><count>5</count></action>
                      <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" />                  
                         <action method="setDefaultGridPerPage"><limit>10</limit></action>
                         <action method="addPagerLimit"><mode>grid</mode><limit>12</limit></action>
                         <action method="addPagerLimit"><mode>grid</mode><limit>24</limit></action>
                         <action method="addPagerLimit"><mode>grid</mode><limit>36</limit></action>
                         <action method="addPagerLimit"><mode>grid</mode><limit>48</limit></action>
                         <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
                      </block>

                      <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>6</count></action>
                      <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                   </block>
</reference>

  • |
装饰列表('products-list','none recursive')

decorateGeneric($$('ul.products grid'),['奇数','偶数','first','last']))

请任何人帮我解决这个问题,我将不胜感激。

您应该将集合分配给
$\u productCollection
,因为pager类从该对象获取集合,请尝试以下代码

<?php

class Mage_Catalog_Block_Product_OtherProducts extends Mage_Catalog_Block_Product_List
{

protected $_productCollection;

protected function _getProductCollection()
{
  $aCategoryId = $this->getProduct()->getCategoryIds();
    if (!$aCategoryId) {
        echo "This product is not assigned to any categories.";
    }
    $iCategoryId = $aCategoryId[0];
    $oCategory = Mage::getModel('catalog/category')->load($iCategoryId);
    $oProductCollection = $oCategory
        ->getProductCollection()
        ->addCategoryFilter($oCategory)
        ->addAttributeToSelect('*')
        ->addFieldToFilter('entity_id', array('neq' => $this->getProduct()->getId()));

   $this->_productCollection = $oProductCollection;

    return $this->_productCollection;

}
}
?>


您好,谢谢您的回答!我试过了,但这并不能解决问题。分页仍然不起作用,所有产品都在第一页加载。你还有其他嫌疑犯吗?顺便说一句,如前所述,我在产品视图页面上这样做,这就是它不起作用的原因吗?你有我在分页中遇到的问题的解决方案吗。
<?php

class Mage_Catalog_Block_Product_OtherProducts extends Mage_Catalog_Block_Product_List
{

protected $_productCollection;

protected function _getProductCollection()
{
  $aCategoryId = $this->getProduct()->getCategoryIds();
    if (!$aCategoryId) {
        echo "This product is not assigned to any categories.";
    }
    $iCategoryId = $aCategoryId[0];
    $oCategory = Mage::getModel('catalog/category')->load($iCategoryId);
    $oProductCollection = $oCategory
        ->getProductCollection()
        ->addCategoryFilter($oCategory)
        ->addAttributeToSelect('*')
        ->addFieldToFilter('entity_id', array('neq' => $this->getProduct()->getId()));

   $this->_productCollection = $oProductCollection;

    return $this->_productCollection;

}
}
?>