我面临一个问题,我不确定是否有解决方案。实际上,我们有一个 magento 网站 A 和一个 magento 网站 B,它们都使用相同的核心资源。因为它们都有一些规范,所以我们覆盖了网站对应文件夹中的部分代码。
所以实际上,两个网站都在使用 A 网站的 Checkout 模块。但是 B 网站的结帐行为现在必须改变,我正在寻找一种方法来仅为 B 网站重写控制器。
所以我的问题是:我怎样才能只为 A 网站重写 A 文件夹中的结帐控制器,并在 B 文件夹中重写相同的控制器,只为 B 网站?
我已经尝试过执行以下操作但没有成功:
一个站点-> config.xml
<routers>
<checkout>
<args>
<modules>
<Mage_Checkout>Mage_Checkout</Mage_Checkout>
<A_Checkout before="Mage_Checkout">A_Checkout</A_Checkout>
<frontname>checkout</frontname>
</modules>
</args>
</checkout>
</routers>
B 站点-> config.xml
<routers>
<checkout>
<args>
<modules>
<Mage_Checkout>Mage_Checkout</Mage_Checkout>
<B_Checkout before="A_Checkout">B_Checkout</B_Checkout>
<frontname>checkout</frontname>
</modules>
</args>
</checkout>
</routers>
问题是首先调用了 B 结帐控制器。
在这种情况下,我唯一的解决方案是检查 websiteId,然后如果我们在 A 网站上调用父函数,或者如果我们在 B 网站上继续。
你能告诉我这是否是一个好的解决方案吗?还是我错过了什么?
非常感谢您的任何建议!
塞布