2012-11-20 96 views
4

我在目录列表中添加了排序方法的日期。如果我选择按日期排序,列表按日期排序 - 这是行之有效的。 但是,我应该如何设置默认排序按日期(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
我在本地文件夹/应用程序/代码/本地/ 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

您具体是如何的日期添加到目录列表的排序方法? 'created_at'不是一个EAV属性,所以你没有通过后端做我想。请在你的问题中提供更多细节。 – Alex

+0

我为你添加了“编辑:1”paragraf。你能检查一下吗? – Krzysztof

+0

顺便说一下,在StackOverflow(S.O.)上,当您发现独立于S.O.的自己的问题时,鼓励性的工作流程。是回答它并接受你自己的答案。它不仅让人们有机会奖励你的好问题和答案,还可以让未来的人更容易看到问题,并鼓励其他人发布解决方案。 –

回答

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