如何在前端按人气排序Magento产品?

如何在前端按人气排序Magento产品?

问题描述:

我已经创建了一个模块,在类别页面的“排序方式”下拉框中添加一个新选项。新选项应显示在每个类别页面中,与已存在的“位置”选项相同。我想添加'流行'作为一个选项。 My Model类正在执行,它将选项添加到选项数组中。但该块不起作用。请帮我在我的代码中找到问题?如何在前端按人气排序Magento产品?

这里是块类

<?php 
class Tal_Popularity_Block_Product_List_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar 
{ 
    public function setCollection($collection) 
    { 
     $this->_collection = $collection; 
     $this->_collection->setCurPage($this->getCurrentPage()); 
     // we need to set pagination only if passed value integer and more that 0 
     $limit = (int)$this->getLimit(); 
     if ($limit) { 
      $this->_collection->setPageSize($limit); 
     } 
     if($this->getCurrentOrder() == 'popularity'){ 
      $this->_collection->sortByReview($this->getCurrentDirection()); 
     } 
    else if ($this->getCurrentOrder()) { 

      $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection()); 
    } 

     return $this; 
    } 
} 

以下是我的config.xml

<?xml version="1.0" ?> 
<config> 
    <modules> 
     <Tal_Popularity> 
      <version>0.1.0</version> 
     </Tal_Popularity> 
    </modules> 
    <frontend> 
     <routers> 
      <popularity> 
       <use>standard</use> 
       <args> 
        <module>Tal_Popularity</module> 
        <frontName>popularity</frontName> 
       </args> 
      </popularity> 
     </routers> 
    </frontend> 
    <global> 
    <models> 
     <catalog> 
      <rewrite> 
       <config>Tal_Popularity_Model_Config</config> 
      </rewrite> 
     </catalog> 
    </models> 
    <blocks> 
     <catalog> 
      <rewrite> 
       <catalog>Tal_Popularity_Block</catalog> 
      </rewrite> 
      </catalog> 
     </blocks> 
     <resources> 
      <popularity_setup> 
       <setup> 
        <module>Tal_Popularity</module> 
       </setup> 
       <connection> 
        <use>core_setup</use> 
       </connection> 
      </popularity_setup> 
      <popularity_write> 
       <connection> 
        <use>core_write</use> 
       </connection> 
      </popularity_write> 
      <popularity_read> 
       <connection> 
        <use>core_read</use> 
       </connection> 
      </popularity_read> 
     </resources> 
    </global> 
</config> 
+0

请任何建议?????????????? – Sukeshini 2013-03-23 08:13:01

我找到了解决办法。问题出在config.xml中

上一个代码。

<blocks> 
     <catalog> 
      <rewrite> 
       <catalog>Tal_Popularity_Block</catalog> 
      </rewrite> 
      </catalog> 
     </blocks> 

上面的代码应该像下面那样。

<blocks> 
      <catalog> 
       <rewrite>   <product_list_toolbar>Tal_Popularity_Block_Product_List_Toolbar</product_list_toolbar> 
       </rewrite> 
       </catalog> 
      </blocks>