カタログリストのソート方法に日付を追加していました。日付で並べ替えを選択した場合、リストは日付で並べ替えられます - これはうまく機能しています。しかし、カタログリストでデフォルトの日付順(DESC)を設定するにはどうすればよいですか? 私の場合、これらのソリューションが機能していません:catalog.xml
<action method="setDefaultDirection"><dir>desc</dir></action>
<action method="setDefaultOrder"><field>created_at</field></action>
および:
Catalog/Block/Product/List/Toolbar.php
protected $_direction = 'desc';
マジェントのバージョン: 1.7.0.2。
編集: 1
ローカル フォルダー /app/code/local/SortByDate/ に新しいモジュールを作成しました。2つのファイルを追加しました。最初の /catalog/model/Config.php:
class SortByDate_Catalog_Model_Config extends Mage_Catalog_Model_Config {
public function getAttributeUsedForSortByArray()
{
$options = parent::getAttributeUsedForSortByArray();
if (!isset($options['created_at'])) {
$options['created_at'] = Mage::helper('catalog')->__('Date');
}
return $options;
}
}
2番目の /etc/config.xml :
<config><global><models><catalog><rewrite><config>SortByDate_Catalog_Model_Config</config></rewrite></catalog></models></global></config>
編集 2 - この関数を修正して解決しました。問題はなくなりました:)
public function setDefaultOrder($field)
{
//set default order by date
if (isset($this->_availableOrder[$field])) {
$this->_availableOrder = array(
'created_at' => $this->__('Date'),
'name' => $this->__('Name'),
'price' => $this->__('Price'),
);
$this->_orderField = $field;
}
return $this;
}