我遇到的问题是我不确定是否有解决方案。 实际上,我们有一个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网站 - &gt; 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网站上,则继续调用。
你能否告诉我这是否是一个好的解决方案?或者我错过了什么?
非常感谢您的任何建议!
Seb
答案 0 :(得分:0)
我的建议是创建两个相似的模板并分配一个模板来存储A而另一个模板来存储B. 现在,对于商店B模板,应用您想要一页结帐的任何修改。
在这里你仍然会分享相同的核心代码,但只是在块和模板级别你需要修改哪个更容易定制。