magento根据浏览次数为商品做排行
最近的magento开发真让人不爽,先吐槽一下!
遇到一个问题,想根据前台商品的浏览次数为商品做排行,即为用户提供查看:最多浏览商品 的功能。
核心代码如下:
require_once ('app/Mage.php');
Mage::app('default');
$visibility= array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
);
$_productCollection= Mage::getResourceModel('reports/product_collection') //获取所有商品集
->addAttributeToSelect('*') //添加商品属性
->addAttributeToFilter('visibility', $visibility) //设置商品可见过滤器
->addViewsCount(); //添加浏览次数
在前台如果需要显示商品的浏览次数,使用 <?php echo $_product->getViews(); ?>即可。
如果想继续深入研究,可以找到..\app\code\core\Mage\Reports\Model\Mysql4\Product\Collection.php文件,也就是Mage::getResourceModel('reports/product_collection')这句代码所生成的商品集对象,可以看到他的addViewsCount()方法的具体实现(默认已经对 浏览次数 做降序排列了)。
QQ:563084310