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によって取得された製品がなくても、「通常の」バージョンで機能するはずです。