2011-12-23 63 views
3

我之前沒有注意到的一點是,Magento會記住您已選擇在分類列表頁面上選擇'排序方式'。因此,如果您轉到類別頁面,並假設默認排序按價格排序,那麼如果將排序更改爲按名稱排序,則頁面會重新加載,並且一切正常。Magento'排序方式' - 如何讓Magento忘記選擇了哪個選項

但是,如果您刪除URL中的get變量並重新加載頁面,它仍按名稱排序,而不是恢復爲price。

我在想這是一個特定於我正在工作的網站的問題,因爲有一些自定義的事情發生在收集建設和排序等,但我現在已經檢查了一些其他Magento網站(一些其中我隨機在網上找到),他們都做同樣的事情。

有誰知道這是如何被'記住'?這是存儲在用戶的會話?我認爲這是緩存的一部分,但這個網站仍在開發中,因此緩存被禁用。

這不是什麼大不了的事情,但它確實看起來像一個錯誤。

+0

有這樣的問題(一個更詳細的解答):http://magento.stackexchange.com/問題/ 15455/how-to-make-products-per-page-setting-reset-to-default-on-pageload – Eric

回答

5

排序順序參數存儲在會話中。見Mage_Catalog_Block_Product_List_Toolbar::getCurrentOrder方法。您可以通過調用Mage_Catalog_Block_Product_List_Toolbar::disableParamsMemorizing方法或在目錄會話中設置params_memorize_allowed將其關閉。我的意思是Mage::getSingleton('catalog/session')->setParamsMemorizeAllowed(true)

+3

這最好在你的'local.xml'中執行: '' –

+0

我有自定義頁面的產品列表自定義塊..我試圖使用兩種方式..但都沒有爲我工作.. 如果($ block = $ this-> getLayout() - > getBlock($ blockName)),我也重寫了'getToolbarBlock()'函數並添加了'$ block-> disableParamsMemorizing();'' '..我錯過了什麼......? – Chaitanya

1

什麼工作對我來說是local.xml添加此:在Magento的Stackexchange

<!-- 
Category default layout 
--> 
<catalog_category_default translate="label"> 

    <!-- Disable memorizing toolbar parameters --> 
    <reference name="content"> 
    <reference name="product_list_toolbar"> 
     <action method="disableParamsMemorizing" /> 
    </reference> 
    </reference> 

</catalog_category_default> 


<!-- 
    Category layered navigation layout 
--> 
<catalog_category_layered translate="label"> 

    <!-- Disable memorizing toolbar parameters --> 
    <reference name="content"> 
    <reference name="product_list_toolbar"> 
     <action method="disableParamsMemorizing" /> 
    </reference> 
    </reference> 

</catalog_category_layered> 
相關問題