我在目录列表中为排序方法添加日期。如果我选择按日期排序,列表按日期排序 - 这是有效的。
但是,我应该如何在目录列表中设置默认的按日期排序(DESC)?
就我而言,不使用这些解决方案:
catalog.xml
<action method="setDefaultDirection"><dir>desc</dir></action>
<action method="setDefaultOrder"><field>created_at</field></action>
和:
目录/块/产品/列表/ Toolbar.php
protected $_direction = 'desc';
Magento版本:1.7.0.2。
修改:1
我在本地文件夹/ app / code / local / SortByDate /中创建了一个新模块。我添加了两个文件。首先是/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;
}
}
和第二个/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;
}
答案 0 :(得分:1)
解决了,我修改了这个功能,问题就消失了。)
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;
}
答案 1 :(得分:0)
我有类似的问题,为了以一种干净的方式为我的所有网站修复它,我已经开发了一个扩展功能。
它免费且易于安装和使用。可以免费下载。
https://magento.mdnsolutions.com/extensions/mdn-sort-by-date.html
干杯,
雷纳托