2012-12-26 39 views
0

我想在默認情況下顯示我的所有產品,從最新到最舊。我看到這個鏈接:如何在Magento後端添加按日期排序

First solution

Second solution

而且還this之一。他們都顯示相同的解決方案,但始終爲前端。

我要的是上系統 - >配置 - >目錄 - >產品列表排序默認設置,默認設置爲創建於,我想也設置順序(降序或ASC)。

有關如何自定義的想法?

+0

該產品的ID會告訴你它們的創建順序:) – boruch

+0

順便說一句,這是正確的。如果您只想對網格進行排序並且看不到創建日期,則按ID排序就足夠了。 –

+0

嗡嗡聲,但...我怎麼可以在後端按ID命令? – Sonhja

回答

3

對不起,我沒有回答你的問題。

網格由ENTITY_ID下令:

// app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php:41 
$this->setDefaultSort('entity_id'); 
$this->setDefaultDir('DESC'); 

這意味着,你想要的行爲應該是默認。

+0

其實它不起作用。它仍然是一樣的。但是我用你的代碼學到了很多東西。 – Sonhja

+0

你的行爲是什麼?刪除你的cookies,登錄到後端,網格排序的關鍵是什麼? –

2

您可以安裝GridControl寫的延伸,將其添加到您的模塊

<?xml version="1.0"?> 
<gridcontrol> 
    <grids> 
     <product.grid> 
      <add> 
       <header>Created at</header> 
       <type>int</type> 
       <index>created_at</index> 
      </add>   
     </product.grid> 
    </grids> 
</gridcontrol> 

該解決方案是不測試中創建一個grid.xml。

+0

不清楚這個解決方案... – Sonhja

+0

GridControl是一個擴展,可以輕鬆地將新列添加到網格。通過上面的代碼,您可以添加created_at列。我剛纔看到,你不能通過這個欄目來命令擴展。所以您有兩種方法:擴展擴展以更改默認順序或編寫自己的擴展來更改它。 –

0

去了解它在不改變任何核心文件的最佳方法是複製位於Toolbar.php文件:

/app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php 

然後創建一個新的目錄路徑(如果您尚未創建一個)下:

/app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php 

立即替換來自管線232執行以下操作:

if ($this->getCurrentOrder()) { 
     $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection()); 
    } 

if ($this->getCurrentOrder()) { 
if(($this->getCurrentOrder())=='position'){ //defines the sort option 
//sort by position (ascending) and entity_id (descending) 
$this->_collection->addAttributeToSort('position','asc')->addAttributeToSort('entity_id','desc'); 
} else { 
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection()); 
} 
} 

最後,在您的Magento後端重新編制索引並刷新緩存,然後準備就緒。