我認爲你正在尋找錯誤的文件。上面描述的ListSort文件僅列出了可供排序的選項。它目前沒有做任何事情。
此外,您引用的文件位於Adminhtml範圍內。如果你需要改變前端的默認排序,你應該看看其他地方。
如果我理解正確的話,你的問題是如何按默認值排序ASC,如果選擇價格進行排序,默認排序DESC是使用另一個屬性進行排序。
對於前端,您應該查看Mage_Catalog_Block_Product_List_Toolbar文件中的getCurrentOrder()函數。在這裏,您可以同時使用默認方向和排序順序。破解app/core/Mage文件並不是一個好習慣,但是你可以複製這個文件並將它放在app/local/Mage/*(與核心文件完全相同的目錄),並且它會自動超載默認方法。
對於後端,您可以查看Mage_Adminhtml_Block_Widget文件中的_prepareCollection()函數。默認排序是'desc',所以您只需將其更改爲'asc'即可。在這裏,你也應該在app/local/Mage/*中創建一個副本。你可以嘗試這樣的事情(對於Magento的1.7.1.0,這是行507-508):
變化
$columnId = $this->getParam($this->getVarNameSort(), $this->_defaultSort);
$dir = $this->getParam($this->getVarNameDir(), $this->_defaultDir);
到
$columnId = $this->getParam($this->getVarNameSort(), $this->_defaultSort);
if($this->getVarNameSort() == 'price') {
$dir = $this->getParam($this->getVarNameDir(), 'asc');
} else {
$dir = $this->getParam($this->getVarNameDir(), $this->_defaultDir);
}
我希望這有助於!
我不明白你的問題。請嘗試更清楚地描述問題和您的想法。謝謝。 – Alex