MagentoコミュニティモジュールでAjaxコントローラーをオーバーライドしようとしています。問題は、メソッドが存在しない場合にのみコントローラーが呼び出されることです。オーバーライドされたコントローラーメソッドをオーバーライドすることはできません。
これが私のコードです
config.xml:
<frontend>
<routers>
<overriden_module>
<args>
<modules>
<My_Module before="Overriden_Module">My_Module</My_Module>
</modules>
</args>
</overriden_module>
</routers>
</frontend>
私はajaxコントローラーをオーバーライドしているので-AjaxController.php:
<?php
require_once (Mage::getModuleDir('controllers', 'Overriden_Module') . DS .'AjaxController.php');
class My_Module_AjaxController extends Overriden_Module_AjaxController {
//This is an overridden method and no hit
public function streetAction() {
die('FOO');
}
// This action is not overridden and gets called
public function otherAction(){
die('BAR')
}
}
要求に応じて、これは私がオーバーライドしているモジュールのルーター部分です。
<routers>
<module_name>
<use>standard</use>
<args>
<module>Module_name</module>
<frontName>frontname</frontName>
</args>
</module_name>
<checkout>
<args>
<modules>
<Module_Name before="Mage_Checkout">Module_Name_Checkout</Module_Name>
</modules>
</args>
</checkout>
</routers>
ありがとうございました。