0
我正在寫一個自定義模塊,用於顯示各種可以加載AJAX的產品。產品加入比較鏈接做的工作,但重定向到錯誤的網址導致AJAX呼叫
所以我打電話給我的控制器方法之一,然後回聲塊填充的HTML填充。這一切都很好...
當產品添加到比較鏈接時出現問題Magento重定向我回到上次控制器方法調用,而不是頁面我的模塊被添加。
是否有任何干淨的方法來解決這種行爲,而不是覆蓋addAction()?
謝謝!
我正在寫一個自定義模塊,用於顯示各種可以加載AJAX的產品。產品加入比較鏈接做的工作,但重定向到錯誤的網址導致AJAX呼叫
所以我打電話給我的控制器方法之一,然後回聲塊填充的HTML填充。這一切都很好...
當產品添加到比較鏈接時出現問題Magento重定向我回到上次控制器方法調用,而不是頁面我的模塊被添加。
是否有任何干淨的方法來解決這種行爲,而不是覆蓋addAction()?
謝謝!
你可以通過一個觀察器來完成比較控制器的postDispatch
。創建你自己的模塊。讓我們把它Easylife_Compare
與以下文件:
app/etc/modules/Easylife_Compare.xml
- 報關文件
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Compare>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Easylife_Compare>
</modules>
</config>
app/code/local/Easylife/Compare/etc/config.xml
- 配置文件
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Compare>
<version>0.0.1</version>
</Easylife_Compare>
</modules>
<global>
<models><!-- declar your own models-->
<easylife_compare>
<class>Easylife_Compare_Model</class>
</easylife_compare>
</models>
</global>
<frontend>
<events>
<controller_action_postdispatch_catalog_product_compare_add><!-- observe the post dispatch for adding to compare list -->
<observers>
<easylife_compare>
<model>easylife_compare/observer</model>
<method>stopRedirect</method>
</easylife_compare>
</observers>
</controller_action_postdispatch_catalog_product_compare_add>
</events>
</frontend>
</config>
app/code/local/Easylife/Compare/Model/Observer.php
- 你自己的觀測
<?php
class Easylife_Compare_Model_Observer{
public function stopRedirect($observer){
//get the real referrer from server var
$referrer = Mage::app()->getRequest()->getServer('HTTP_REFERER');
if ($referrer){
//set your new redirect
Mage::app()->getResponse()->setRedirect($referrer);
}
return $this;
}
}
清除緩存並放手。這應該工作在'正常'版本,沒有產品檢索ajax和你的情況。