1
2つの異なるカスタムモジュールで同じMagentoコアコントローラーをオーバーライドする方法はありますか?Magentoの複数のカスタムモジュールのコントローラーのオーバーライド
2つの異なるカスタムモジュールで同じMagentoコアコントローラーをオーバーライドする方法はありますか?Magentoの複数のカスタムモジュールのコントローラーのオーバーライド
あなたは(config.xmlファイルで)次のXMLを使用して簡単にオーバーライドコアコントローラをすることができます知っているかもしれませんが:
<frontend>
<routers>
<core_module>
<args>
<modules>
<YouPackage_YourModule before="Mage_CoreModule">YouPackage_YourModule_YourController</YouPackage_YourModule>
</modules>
</args>
</core_module>
</routers>
</frontend>
あなたが好きなあなたは多くの時間とコアコントローラを無効にすることができますが、あなたはそれを確認する必要がありますこのコントローラーのアクションは異なります。同じアクションをオーバーライドする場合は、いくつかの組み合わせたアクションを使用して競合を解決する必要があります。異なるコントローラから同じアクションを呼び出す方法はありません。
こんにちは、azakolyukin、ありがとうクイックレスポンス。私はmoduleAのコアコントローラをオーバーライドしています。同じコントローラをmoduleBでオーバーライドしようとしていたので、両方のモジュールでも同じ動作をしましたが、magentoはmoduleBではなくmoduleAで記述したアクションを呼び出します。どのように私は両方のモジュール(両方のモジュールでオーバーライドされたコントローラで書かれたアクション)のアクションを使用できるように、この問題を克服することができます。ありがとう – Rupali
モジュールBでは、 ' YouPackage_YourModule_YourController YouPackage_YourModule>'と書くべきです。 –
Zyava
答えが不完全で、2番目のモジュール/オーバーライド(B)が新しいメソッドを導入する場合にのみ機能します。それ以外の場合、最初のモジュール/オーバーライド(A)が初期化されます。この種の問題を解決するための@Zyavaの回答を参照してください(このシナリオでは、2番目のモジュールが最初のモジュールを拡張する必要があります) – WonderLand