在产品分类页面,数据的加载过程!!

list-->layer-->category-->collection
1
catalog/block/product/list.php   ---->_getProductCollection()
$layer = Mage::getSingleton('catalog/layer');
$category = Mage::getModel('catalog/category')->load($this->getCategoryId());
$layer->setCurrentCategory($category);
$layer->getProductCollection();
prepareSortableFieldsByCategory
//得到layer,category,然后layer赋值,然后prepareSortableFieldsByCategory

2
mage/catalog/model/layer.php   ---->getProductCollection()
$this->getCurrentCategory()->getProductCollection();
prepareProductCollection($collection);
//得到category-
3
mage/catalog/model/category.php  --->getProductCollection()
$collection = Mage::getResourceModel('catalog/product_collection')
            ->setStoreId($this->getStoreId())
            ->addCategoryFilter($this);

4
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection

setStoreId()
addCategoryFilter()

5
在list.phtml中得到
<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
$_productCollection就是
Mage_Eav_Model_Entity_Collection_Abstract类型!!!

过程本质是:Mage::getResourceModel('catalog/product_collection')
            ->setStoreId($this->getStoreId())
            ->addCategoryFilter($this);
其余的过程是为这个语句准备数据,和一起其他,,譬如,prepare,prepareSortableFieldsByCategory等工作。。!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值