最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > Magento > Magento教程 >

magento搜索结果排序和列表页排序

时间:2014-09-01 16:27来源:未知 作者:最模板zuimoban 点击:
之前写过一个文章来调整产品的排序功能,,,从网上收集了一下。。发现这个方法,是最方便的! 其实magento就是按产品的属性值来排序的! 最新 的方法:修改: \app\code\core\Mage\Ca

之前写过一个文章来调整产品的排序功能,,,从网上收集了一下。。发现这个方法,是最方便的!

 

其实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;
}

(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容