之前写过一个文章来调整产品的排序功能,,,从网上收集了一下。。发现这个方法,是最方便的!
其实magento就是按产品的属性值来排序的!
最新 的方法:修改:
\app\code\core\Mage\Catalog\Block\Product\List\Toolbar.php
找到下面这个方法:把他之前的注释,然后改成自己需要的属性
public function setDefaultOrder($field)
{
/* if (isset($this->_availableOrder[$field])) {
$this->_orderField = $field;
} */
$this->_orderField = 'sortorder';
return $this;
}
下面这个貌似还是有bug
magento根目录下的/app/code/core/Mage/Catalog/Model下的config.php中找到了magento产品列表页初始排序数组的方法,源代码如下:
public function getAttributeUsedForSortByArray()
{
$options = array(
'position' => Mage::helper('catalog')->__('Position')
);
foreach ($this->getAttributesUsedForSortBy() as $attribute) {
/* @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */
$options[$attribute->getAttributeCode()] = $attribute->getStoreLabel();
}
return $options;
}
只需要把你想要放在默认位置的排序方式写在'position' 前面就可以了,比如我把价格放在前面
public function getAttributeUsedForSortByArray()
{
$options = array(
'price' => Mage::helper('catalog')->__('Price'),
'position' => Mage::helper('catalog')->__('Position')
);
foreach ($this->getAttributesUsedForSortBy() as $attribute) {
/* @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */
$options[$attribute->getAttributeCode()] = $attribute->getStoreLabel();
}
return $options;
}
(责任编辑:最模板) |