gpt4 book ai didi

magento - 关于 magento 1.7.0.2 中观看次数最多的排序

转载 作者:行者123 更新时间:2023-12-02 21:03:26 25 4
gpt4 key购买 nike

查看最多的产品文件位于此处:

App/code/local/Mage/Catalog/Block/Product/Mostviewed.php 

我添加了以下代码:

class Mage_Catalog_Block_Product_Mostviewed extends Mage_Catalog_Block_Product_Abstract
{
public function __construct(){
parent::__construct();
$storeId = Mage::app()->getStore()->getId();
$collection = Mage::getResourceModel('reports/product_collection')->addViewsCount();
$collection->getSelect()->joinInner(array('e2' => 'catalog_product_flat_'.$storeId), 'e2.entity_id = e.entity_id');
$collection->addAttributeToSelect('*');

//$collection->printlogquery(true);
//exit();
$this->setProductCollection($collection);
}

protected function _prepareLayout()
{
parent::_prepareLayout();

$toolbar = $this->getLayout()->createBlock('catalog/product_list_toolbar', microtime())
->setCollection($this->getProductCollection());

$pager = $this->getLayout()->createBlock('page/html_pager', microtime());
$toolbar->setChild('product_list_toolbar_pager', $pager);

$this->setChild('toolbar', $toolbar);
$this->getProductCollection()->load();

return $this;
}

public function getPagerHtml()
{
return $this->getChildHtml('toolbar');
}
}

未添加addViewsCount()打印sql:

SELECT `e`.*, `e2`.* 
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_flat_1` AS `e2`
ON e2.entity_id = e.entity_id

添加了addViewsCount()打印sql:

SELECT COUNT(report_table_views.event_id) AS `views`, `e`.*, `e2`.* 
FROM `report_event` AS `report_table_views`
INNER JOIN `catalog_product_entity` AS `e`
ON e.entity_id = report_table_views.object_id AND e.entity_type_id = 4
INNER JOIN `catalog_product_flat_1` AS `e2`
ON e2.entity_id = e.entity_id
WHERE (report_table_views.event_type_id = 1)
GROUP BY `e`.`entity_id`
HAVING (COUNT(report_table_views.event_id) > 0)
ORDER BY `views` DESC

添加了 addViewsCount() 按不起作用排序,在删除 addViewsCount() 中起作用。

如何解决?

编辑:现在问题已经解决了。我的mysql数据库有问题。代码没有问题。谢谢@liyakat @Alex。

最佳答案

您可以通过Mage_Reports_Model_Resource_Product_Collection模型获取浏览次数。

//将 $to$from 设置为空字符串以禁用时间范围过滤

$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setStoreId($storeId)
->addStoreFilter($storeId)
->addViewsCount()
->joinField('inventory_in_stock', 'cataloginventory/stock_item',
'is_in_stock', 'product_id=entity_id', '{{table}}.is_in_stock=1');



Mage::getSingleton('catalog/product_status')
->addVisibleFilterToCollection($products);
Mage::getSingleton('catalog/product_visibility')
->addVisibleInCatalogFilterToCollection($products);
$products->getSelect()->limit( 15 );
return $products;

请告诉我是否可以为您提供更多帮助

关于magento - 关于 magento 1.7.0.2 中观看次数最多的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com