脚本宝典收集整理的这篇文章主要介绍了php – 按类别对产品进行排序(在父类别视图中),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<events> <catalog_block_product_list_collection> <observers> <namespace_module> <class> namespace_module/observer</class> <method>collectionList</method> </namespace_module > </observers> </catalog_block_product_list_collection> </events>
2创建类Namespace_Module_Model_Observer
class Namespace_Module_Model_Observer { public function collectionList($observer) { /** @VAR Mage_Catalog_Model_Category $currentCategory */ $currentCategory = Mage::registry('current_category'); $children = Mage::getResourceModel('catalog/category')->getChildrenIds($currentCategory); if (!$children) { return $this; } $children = implode(',',$children); /** @var Mage_Catalog_Model_Resource_Product_Collection $collection */ $collection = $observer->getCollection(); $attr = $this->_getAttribute('name'); $collection->getSelect() ->join( array('c' => $this->_getResource()->getTableName('catalog_category_product')),"c.product_id = e.entITy_id AND c.category_id IN ($children)",array('child_category_id' => 'category_id') ) ->join( array('ac' => $this->_getResource()->getTableName('catalog_category_entity_' . $attr['backend_tyPE'])),"c.category_id = ac.entity_id AND ac.attribute_id = {$attr['attribute_id']}",array('child_category_name' => 'value') ) ->order('child_category_name DESC'); return $this; } protected function _getAttribute($attributeCode,$static = true,$entityTypeid = 3) { $readAdapter = $this->_getReadAdapter(); $select = $readAdapter->select() ->From($this->_getResource()->getTableName('eav/attribute')) ->reset(Zend_Db_Select::COLUMNS) ->columns(array('attribute_id','backend_type')) ->where('entity_type_id = ?',$entityTypeId) ->where('attribute_code = ?',$attributeCode) ->limit(1); if (!$static) { $select->where('backend_type != ?','static'); } $entityId = $readAdapter->query($select)->fetch(); return $entityId; } protected function _getResource() { return Mage::getSingleton('core/resource'); } protected function _getReadAdapter() { return $this->_getResource()->getConnection('core_read'); } }
这里我们按子类别名称设置集合排序,您可以将其更改为类别ID或添加到集合任何类别属性并按此属性排序
->order('child_category_name DESC');
以上是脚本宝典为你收集整理的php – 按类别对产品进行排序(在父类别视图中)全部内容,希望文章能够帮你解决php – 按类别对产品进行排序(在父类别视图中)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。